小编典典

SQL选择最常见的值

sql

这个问题已经在这里有了答案

获取SQL中另一列的每个值的最通用值 (9个答案)

6年前关闭。

我对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));

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

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


阅读 151

收藏
2021-04-07

共1个答案

小编典典

这样可以:

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