This question already has answers here:
Get most common value for each value of another column in SQL

(9 个回答)


7年前关闭。




我对 SQL 很陌生(我正在使用 MySQL)并且需要一些帮助。我目前正在尝试从名为 PERSON 的表中选择最常见的年龄。假设 PERSON 有一个 AGE 列,它的值是:10、10、20、20、30。查询应该返回值 10 和 20。

以下查询仅检索顶行 (20):
SELECT AGE FROM PERSON GROUP BY AGE ORDER BY COUNT(*) DESC LIMIT 1;

我的另一个想法是尝试类似的事情:
SELECT AGE FROM PERSON GROUP BY AGE HAVING COUNT(AGE) = MAX(COUNT(AGE));

这将返回一个错误,指出它是无效使用组功能。

任何帮助将不胜感激。谢谢!

最佳答案

这将:

select age from persons
group by age
having count(*) = (
  select count(*) from persons
  group by age
  order by count(*) desc
  limit 1)

关于mysql - SQL 选择最常见的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9853671/

10-11 05:14