我的目标:显示在一个changeid中提交最多修订次数的前10名用户的名称。 (一个变更可以有多个修订)
Select DISTINCT(rev_authorUsername), COUNT(rev_id) as revnum FROM t_revision
group by rev_authorUsername, rev_changeId
order by revnum desc
limit 10;
我得到了前 10 位作者,但得到了重复的名字。有什么帮助吗??
最佳答案
DISTINCT
修饰符适用于所选集,请勿在rev_authorUsername
两边使用括号- 使用
DISTINCT
和GROUP_BY
(此处使用不同的列)may have some unexpected result :
(…) cavalier treatment of "Group By" and "Distinct" could lead to some pernicious gotcha's down the line if you're not careful.
这个请求怎么样:
SELECT DISTINCT rev_authorUsername, COUNT(rev_id) as revnum
FROM t_revision
ORDER BY revnum DESC
LIMIT 10;
(DISTINCT
和 GROUP BY
的使用在 MySQL Reference Manual - SELECT Syntax 中进行了解释。)
关于MySQL 需要特殊指导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50671296/