首页 > 解决方案 > MySQL COUNT 和 TOP

问题描述

我有一个包含两列的简单表格:

NAME        YEAR

Pete        1989
John        1989
Sloane      1990
Derek       1990
Steve       1991

我想得到最常发生的年份,在这种情况下:

1989
1990

示例 #2:

NAME        YEAR

Pete        1955
John        1955
Sloane      1990
Derek       1992
Steve       1991

在这种情况下:

1955

标签: mysqlsql

解决方案


这在 MySQL 8.0 之前的版本中有点棘手。这是一种方法:

select year
from t
group by year
having count(*) = (select count(*)
                   from t
                   group by year
                   order by count(*) desc
                   limit 1
                  );

是一个 SQL Fiddle,证明它可以工作。


推荐阅读