SQL - Redshift 滞后函数获取重复项
Posted
技术标签:
【中文标题】SQL - Redshift 滞后函数获取重复项【英文标题】:SQL - Redshift Lag Function getting duplicates 【发布时间】:2020-04-15 20:02:02 【问题描述】:我在下面有一张桌子
ID Type Sub_ID Date CNT
A P A1 4/1/2020 5
A P A2 4/5/2020 NULL
A P A3 4/8/2020 NULL
我想要得到的是
ID Type Sub_ID Date CNT LAG
A P A1 4/1/2020 5 NULL
A P A2 4/5/2020 NULL 5
A P A3 4/8/2020 NULL NULL
我有以下查询,但它给了我类似的重复项
ID Type Sub_ID Date CNT LAG
A P A1 4/1/2020 5 NULL
A P A1 4/1/2020 5 5 (duplicate)
A P A2 4/5/2020 NULL 5
A P A2 4/5/2020 NULL NULL (duplicate)
A P A3 4/8/2020 NULL NULL
select *, lag(cnt,1) over (partition by id, type order by date)
from mytable
有什么问题吗?
【问题讨论】:
您的处理有问题。lag()
不添加行。
@GordonLinoff 对..那么我该如何解决这个问题?我认为我正确使用了该功能..
【参考方案1】:
好的...我的表格中有重复的数据..需要先进行重复数据删除,然后在清理过的表格上进行延迟
【讨论】:
以上是关于SQL - Redshift 滞后函数获取重复项的主要内容,如果未能解决你的问题,请参考以下文章
用 redshift SQL 替换基于循环的重复数据删除代码
如何根据 Where 条件获取 Redshift 中的上述值?
是否有 R 函数或 SQL 解决方案用于将所有相同的数字重复分组并将它们分配给所有行?