作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个按 id 链接的表(ENTRIES 和 USERS),我只想从前 5 个用户中选择所有条目,然后按单个用户条目的 COUNT 对它们进行排序。
USERS ENTRIES
tom entry1
mary entry2
jane entry3
tom entry4
tom entry5
USERS ENTRIES
tom entry1
tom entry4
tom entry5
jane entry3
mary entry2
SELECT ENTRIES.entry, USERS.NAME FROM ENTRIES, USERS
WHERE ENTRIES.USER_ID = USERS.ID
ORDER BY USERS.NAME
最佳答案
由于您使用的是 Oracle,您可以使用窗口函数来获取每个用户的总数:
SELECT e.entry,
u.NAME,
count(*) over(partition by u.name) Total
FROM ENTRIES e
INNER JOIN USERS u
ON e.USER_ID = u.ID
ORDER BY total desc, u.NAME
select entry,
name,
total
from
(
SELECT e.entry,
u.NAME,
count(*) over(partition by u.name) Total,
rownum rn
FROM ENTRIES e
INNER JOIN USERS u
ON e.USER_ID = u.ID
)
where rn <= 5
ORDER BY total desc, NAME
关于SQL ORDER BY GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369723/
我是一名优秀的程序员,十分优秀!