mysql - SQL 选择最常见的值

标签 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;

我的另一个想法是尝试这样的事情:

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/

相关文章:

mysql - COALESCE 不返回所有结果

java - Prepared Statement boolean 与 Bit Postgresql 和 Java

mysql - 计算 value = 1 的记录的总和

PHP/CodeIgniter关系型数据库数组搭建

mysql - 如何知道openshift中mysql的详细信息?

mysql - Mysql中的插入,其中一列有一个常量值

sql - 什么时候多查询而不是多连接更好?

mysql - 如何编写一个返回所有玩家姓名的 SQL 查询...?

mysql - 查询以在逗号分隔列表中显示一列名称

sql - 如何编写从该月第一天(4 个月前)开始到上个月最后一天结束的动态 NetSuite 日期范围?