关注
三步:
第一步:求连续值,和lag作差=1的为0表示连续,不连续的则为1,确定断裂点
第二步:组内加合,断裂点的连续 假设原来 1 0 1 0 1,SUM之后就是 11 22 3 也就表示了前两个一组连续 3和4位连续一组,最后一个自己一组
第三步: 组内赋rank,row_number 给group内部排序,新的组新的排序,就可以了
WITH RankedDates AS (
SELECT
userid,
dt, (CASE
WHEN dt - LAG(dt) OVER(PARTITION BY userid ORDER BY dt) = 1 THEN 0
ELSE 1
END) AS NewGroupFlag
FROM table1
),
GroupedDates AS (
SELECT
userid,
dt,
SUM(NewGroupFlag) OVER(PARTITION BY userid ORDER BY dt) AS GroupNum
FROM RankedDates )
SELECT
userid,
dt,
ROW_NUMBER() OVER(PARTITION BY userid, GroupNum ORDER BY dt) AS days
FROM GroupedDates
ORDER BY userid, dt;
查看原帖
点赞 评论
相关推荐
06-06 11:33
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 工作中哪个瞬间让你想离职 #
28495次浏览 198人参与
# 在职场上,你最讨厌什么样的同事 #
16350次浏览 165人参与
# 机械人,秋招第一次笔试的企业是哪家? #
41184次浏览 327人参与
# 选了这个offer,你有没有后悔? #
593095次浏览 4029人参与
# 小米硬件提前批进度交流 #
171151次浏览 1528人参与
# 机械求职避坑tips #
53503次浏览 381人参与
# 哪些公司校招卡第一学历 #
75215次浏览 309人参与
# 担心入职之后被发现很菜怎么办 #
139579次浏览 809人参与
# 入职以后才知道的校招谎言 #
89065次浏览 588人参与
# 职场常用语录大全 #
4168次浏览 31人参与
# Offer比较,你最看重什么? #
192199次浏览 1310人参与
# 华子oc时间线 #
1245092次浏览 6487人参与
# 哪些公司开提前批了? #
30128次浏览 277人参与
# 风评不好的公司,你会去吗? #
66102次浏览 463人参与
# 两会劳动法放大招 #
76726次浏览 692人参与
# 应届生初入职场,求建议 #
230340次浏览 2651人参与
# 实习如何「偷」产出? #
56515次浏览 1394人参与
# 不卡学历的大厂有哪些? #
33070次浏览 253人参与
# 校招阶段,学历VS技术哪个更重要? #
19731次浏览 209人参与
# 怎么防止在试用期被辞退 #
129218次浏览 927人参与