MySQL 需要明确的指导

MySQL Distinct guidance needed

我的目标:显示在一个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 的括号,它们不应该存在,并且可能会影响您的结果。

  1. DISTINCT 修饰符适用于所选集,请勿在 rev_authorUsername
  2. 周围使用括号
  3. 使用DISTINCTGROUP_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;

DISTINCTGROUP BY 的使用在 MySQL Reference Manual - SELECT Syntax 中有解释。)