sql - SQL 语句用于计算“Column_a”从前一天更改的所有行
问题描述
我正在寻找一个 SQL 查询来计算从前一天更改为“column_a”的所有行。该表有一个日期列“historyDate”。提前致谢。
解决方案
如果每天只有一行,那么您可以使用lag()
:
select t.*
from (select t.*, lag(column_a) over (order by historydate) as prev_column_a
from t
) t
where prev_column_a <> column_a;
注意:这假设column_a
是 never NULL
。可以调整逻辑来处理这个问题,但它变得有点复杂。
推荐阅读
- r - 如何在使用 R 访问 ODBC 时使用变量?
- asp.net-core - Cloudampq 中的 MassTransit 高内存使用率
- apache-kafka - 自定义 Kafka 连接器:连接器出错但任务仍在运行
- c# - 在保存文件之前从 SaveFileDialog 获取文件夹路径
- node.js - 通过 Express 将 Filestream 发送到客户端以进行下载
- python - pkg_resources.DistributionNotFound:未找到“pip==19.0.3”分发,应用程序需要该分发
- node.js - 现在在 NEST JS 中启用验证器 DTO
- java - 无法获取 win32-x86-64/xpde.dll 的 InputStream
- c - 将 rodata 与创建它的函数一起定位
- arrays - 如何将字符串转换为复杂的结构数组并在蜂巢中爆炸