我正在使用 SQL Server,考虑下表:
内容表
标题 | 话题 | id_user |
---|---|---|
标题 1 | 主题1 | 1 |
标题 2 | 主题1 | 1 |
标题 3 | 主题2 | 2 |
标题 4 | 主题1 | 3 |
标题 5 | 主题1 | 1 |
标题 6 | 主题1 | 3 |
标题 7 | 主题2 | 2 |
当我运行时,我得到以下信息:
SELECT topic, id_user, COUNT(*) AS total
FROM Content
GROUP BY topic, id_user
ORDER BY total DESC
结果
话题 | id_user | 全部的 |
---|---|---|
主题1 | 1 | 3 |
主题1 | 3 | 2 |
主题2 | 2 | 2 |
在这种情况下,有两个用户(可能更多)使用 Topic1,我只想显示他们各自 Topic 的总计数值最高的用户
例如得到以下结果:
预期结果
话题 | id_user | 全部的 |
---|---|---|
主题1 | 1 | 3 |
主题2 | 2 | 2 |
任何线索如何做到这一点?
您可以使用 ROW_NUMBER() 窗口函数来查找总数最大的用户。
这意味着以某种方式可以确定,总有一个用户的总数最高。