sql - 如何在 BIG QUERY 中仅选择增量记录
问题描述
我的数据库中有如下数据
我期待结果像
谁能帮助我如何为此编写选择查询。它是一种增量数据加载
请帮助我
解决方案
您可以使用窗口函数。您想要每条记录的最早版本,因此:
select t.*
from (select t.*,
row_number() over (partition by empid, empname, sal order by create_time) as seqnum
from t
) t
where seqnum = 1;
如果您想检测更改,而不是一组值的第一次出现,您可以使用lag()
:
select t.*
from (select t.*,
lag(sal) over (partition by empid, empname order by create_time) as prev_sal
from t
) t
where prev_sal is null or prev_sal <> sal;
这可以处理减少和增加的工资。
推荐阅读
- pine-script - 如何创建一条简单的黑线来连接烛体的低点和高点?[松稿]
- java - 如何在调用 Async 方法中使用 @Async 注释服务方法?弹簧靴
- linux - 我正在尝试配置 I3status 并且我的内存条显示的内存比 /proc/meminfo 中的实际内存多得多?
- complexity-theory - 问题可以在 NP 中而不是 NP-Complete 或 P 中吗?
- indexing - Python中的SUMIF MATCH条件
- c# - 计时器归零后重新启用按钮
- python - 覆盖tkinter中标签的内存
- firebase - Firestore 的排球或改造?
- android - 如何使用物理相机键或麦克风键启动应用程序 - android?
- python - 使用 sklearn OneHotEncoder 时如何去掉数字列?