【发布时间】:2021-07-16 08:00:49
【问题描述】:
我正在使用 redshift sql,并希望将凭证期重叠的用户分组到一行中(显示最短开始日期和最长结束日期)
例如,如果我有这些记录,
我想用 redshift 来实现这个结果
由于第 1 行和第 2 行有重叠的日期,所以解释很简单,我想将它们组合在一起并得到 min(Start_date) 和 max(End_Date)
我真的不知道从哪里开始。尝试使用 row_number 对它们进行分区,但似乎效果不佳。这是我尝试过的。
select
id,
start_date,
end_date,
lag(end_date, 1) over (partition by id order by start_date) as prev_end_date,
row_number() over (partition by id, (case when prev_end_date >= start_date then 1 else 0) order by start_date) as rn
from users
有什么建议吗?谢谢各位好心人。
【问题讨论】:
-
Redshift 还是 Postgres?这是两种截然不同的数据库产品
-
哦,对不起,红移。编辑标签
标签: sql amazon-web-services amazon-redshift metabase