[英]How to find the second minimum log in time per each user id
我正在 BigQuery 上进行 SQL 查询,并试图为每个用户 ID 找到第二个最短登录时间。
用户身份 | 登录时间 |
---|---|
1个 | 2022-11-06 08:45:17 |
1个 | 2022-11-07 09:52:27 |
1个 | 2022-11-08 02:08:54 |
2个 | 2022-11-04 08:10:38 |
2个 | 2022-11-07 16:46:34 |
2个 | 2022-11-18 01:26:53 |
我想找到以下结果。
用户身份 | 第二次登录时间 |
---|---|
1个 | 2022-11-07 09:52:27 |
2个 | 2022-11-07 16:46:34 |
谁能帮我弄清楚如何解决这个问题?
我们可以使用RANK()
分析函数:
WITH cte AS (
SELECT *, RANK() OVER (PARTITION BY User_id ORDER BY LoginTime) rnk
FROM yourTable
)
SELECT User_id, LoginTime AS SecondLoginTime
FROM cte
WHERE rnk = 2
ORDER BY User_id;
请注意,根据您想要的行为,如果关系可能发生,您可能想要使用DENSE_RANK()
而不是RANK()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.