MySQL 需要特殊指导

标签 mysql distinct

我的目标:显示在一个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 位作者,但得到了重复的名字。有什么帮助吗??

最佳答案

  1. DISTINCT 修饰符适用于所选集,请勿在 rev_authorUsername 两边使用括号
  2. 使用 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 中进行了解释。)

关于MySQL 需要特殊指导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50671296/

相关文章:

MySQL选择行并加入多条记录

mysql - 在mysql上显示数据3表

c# - 列表在调试器中显示 4 个项目,即使只填充了一个元素

xslt - 使用 XSLT 的多个键上的不同节点

sql - Oracle SQL 按天分组计数,当天和前天不同

sql - 停止在联接上返回多个相似的行

mysql - 查找另一个表中的元素数量

mysql - 我的数据库设计缺陷...请解释一个更好的方法...((正确的方法))

sql - 如何重写在行中给出特定值数量的查询以避免某些值并进一步计算其他值?

mysql - UPDATE table1 SET column1 = (SUM(table2{& table3} WHERE table2_id1 = id1) WHERE id1 = table2_id1