首页 > 解决方案 > 如何在 BIG QUERY 中仅选择增量记录

问题描述

我的数据库中有如下数据

数据库中的现有数据

我期待结果像

现有数据的预期输出

谁能帮助我如何为此编写选择查询。它是一种增量数据加载

请帮助我

标签: sqlgoogle-bigquerybigdata

解决方案


您可以使用窗口函数。您想要每条记录的最早版本,因此:

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;

这可以处理减少和增加的工资。


推荐阅读