我的目标:显示在一个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位作者,但我得到了重复的名字。有任何帮助吗?
答案 0 :(得分:1)
DISTINCT
修饰符适用于所选集合,请勿在{{1}}周围使用括号rev_authorUsername
和DISTINCT
(此处包含不同的列)may have some unexpected result:(...)“Group By”和“Distinct”的骑士对待可能导致一些 如果你不小心,就会陷入危险的境地。
这个请求怎么样:
GROUP_BY
(MySQL Reference Manual - SELECT Syntax中解释了SELECT DISTINCT rev_authorUsername, COUNT(rev_id) as revnum
FROM t_revision
ORDER BY revnum DESC
LIMIT 10;
& DISTINCT
的使用。)
答案 1 :(得分:0)
尝试在rev_authorUsername
之后移除DISTINCT
周围的括号,它们不应该在那里,可能会使您的结果变得混乱。