SQL 选择最常见的值

lot*_*ons 3 mysql sql

我对 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;
Run Code Online (Sandbox Code Playgroud)

我的另一个想法是尝试类似的事情:

SELECT AGE FROM PERSON GROUP BY AGE HAVING COUNT(AGE) = MAX(COUNT(AGE));
Run Code Online (Sandbox Code Playgroud)

这会返回一个错误,指出组函数的使用无效。

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

Mos*_*cho 5

这会做:

select age from persons
group by age
having count(*) = (
  select count(*) from persons
  group by age
  order by count(*) desc
  limit 1)
Run Code Online (Sandbox Code Playgroud)