【发布时间】:2020-01-25 08:04:47
【问题描述】:
我有一个如下所示的 SQL 表:
user_id role date
1 1 2019-11-26 21:20:54.397+00
1 2 2019-11-27 22:46:28.923+00
2 1 2019-12-06 22:17:53.925+00
2 3 2019-12-13 00:12:28.006+00
3 1 2019-11-25 21:57:17.701+00
3 1 2019-12-06 20:48:28.314+00
3 1 2019-12-15 23:59:06.81+00
4 3 2019-12-04 15:26:10.639+00
4 3 2019-11-22 19:20:01.025+00
4 3 2019-11-25 12:38:53.169+00
我想根据过去的日期和使用获得最频繁的角色。结果应如下所示:
user_id role date most_frequent_role
1 1 2019-11-26 21:20:54.397+00 NULL
1 2 2019-11-27 22:46:28.923+00 1
2 1 2019-12-06 22:17:53.925+00 NULL
2 3 2019-12-13 00:12:28.006+00 1
3 1 2019-11-25 21:57:17.701+00 NULL
3 1 2019-12-06 20:48:28.314+00 1
3 1 2019-12-15 23:59:06.81+00 1
4 3 2019-12-04 15:26:10.639+00 NULL
4 3 2019-11-22 19:20:01.025+00 3
4 3 2019-11-25 12:38:53.169+00 3
【问题讨论】:
-
您能否详细说明您的逻辑,您如何获得预期的结果?如果没有一个最常见的角色怎么办?
-
此时,我没有得到预期的结果,因为我没有到达那里得到它。你说得对,我不解释这个案子。如果没有一个最常用的角色,则角色应该用逗号分隔
标签: sql postgresql window-functions