我試圖找到誰在一個月內花費最高的一次用戶,在今年的每個月都在今年一月份用戶度過,每個月最高的一次使用時間會
我使用以下數據
uid activity-time status
... ................... ........
1 2016-12-31 16:00:04 sign in
1 2016-12-31 21:05:37 sign out
2 2016-12-25 18:00:04 sign in
2 2016-12-25 20:45:31 sign out
7 2016-10-31 13:00:04 sign in
7 2016-10-31 16:05:30 sign out
1 2016-12-27 17:00:04 sign in
1 2016-12-27 19:05:00 sign out
2 2016-10-25 18:00:04 sign in
2 2016-10-25 20:45:31 sign out
4 2017-12-31 16:00:04 sign in
4 2017-12-31 21:05:37 sign out
3 2017-12-25 18:00:04 sign in
3 2017-12-25 20:45:31 sign out
7 2017-10-31 16:00:04 sign in
7 2017-10-31 21:05:37 sign out
3 2017-10-25 18:00:04 sign in
3 2017-10-25 20:45:31 sign out
我期待下面的輸出
uid year month time-spent
...... ..... ..... ..........
1 2016 12 07:10:45
7 2016 10 03:05:34
4 2017 12 05:05:41
7 2017 10 05:05:41
我曾嘗試下面的查詢,但我不知道如何指定的登錄和退出條件
SELECT ETS.*
FROM (SELECT year(activity-time),month(activity-time), uid, count(uid) as c,
ROW_NUMBER() OVER (PARTITION BY month(activity-time) ORDER BY COUNT(uid) DESC) as seq
FROM activity_table
GROUP BY month(activity-time),year(activity-time), uid
) ds
WHERE seq = 1
ORDER BY c DESC ;
應該將跨越兩個月的時間段分開嗎? –