我正在尝试在查询中创建自定义排名或顺序,以便我可以看到按用户按时间顺序分组的事件序列。我想要实现的是“Desired_Rank”下的顺序,但我只能创建最后2列。任何帮助将不胜感激!
dense_rank() OVER( ORDER BY date ,user_id) Current_Rank_1
dense_rank() OVER( ORDER BY user_id) Current_Rank_2
User_ID Date Desired_Rank Current_Rank_1 Current_Rank_2
a 12/23/2016 1 1 1
b 12/27/2016 2 2 2
a 2/24/2017 3 3 1
c 2/24/2017 4 4 3
d 5/3/2017 5 5 4
d 5/5/2017 5 6 4
d 5/9/2017 5 7 4
d 5/9/2017 5 7 4
答案 0 :(得分:1)
您可以使用SELECT Count(*)
FROM <DATABASE_NAME>.INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
和运行总和来执行此操作。将当前行的user_id与之前的user_id进行比较,并在遇到更改时重置该值。
lag