首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对连续的时间戳进行分组(Redshift)

问对连续的时间戳进行分组(Redshift)
EN

Stack Overflow用户
提问于 2021-02-09 10:42:43
回答 1查看 22关注 0票数 0

我得到了一些我不能理解的东西

原始数据显示每15分钟间隔,我想把他们分组的基础上,如果他们是连续的15分钟间隔(见下面的截图),我想这样做多次为每个用户和许多用户…如果只使用sql就可以扩展到1000个用户,你有什么想法吗?

​

​

任何帮助都会被告知

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-09 10:48:33

这是一种缝隙和岛屿问题。使用lag()获取差值,然后使用累积和来确定组:

代码语言:javascript
复制
select user_id, min(start_time), max(end_time)
from (select t.*,
             sum( case when prev_end_time <> start_time then 0 else 1 end) over (partition by user_id order by start_time) as grp
      from (select t.*,
                   lag(end_time) over (partition by user_id order by start_time) as prev_end_time
            from t
           ) t
     ) t
group by user_id, grp;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66112228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档