MySQL - 选择出现次数最多的条目

标签 mysql sorting

应该是一个简单的。

数据库是mydb。其中一列是 mydata。

我需要什么 SELECT 查询才能从 mydata 中选择前 3 个出现的结果,但按字母顺序排序?

比如我的数据是这样的:

mydata
======
kilo (x 1 occurrence)
lima (x 9 occurrences)
golf (x 5 occurrences)
echo (x 9 occurrences)
zulu (x 8 occurrences)

如何让它返回“echo、lima、zulu”,这是按字母顺序排序的前三个最常出现的条目?谢谢!

编辑:补充一下,它们需要是不同的条目。谢谢!

最佳答案

使用内部选择来选择您想要的结果,使用外部选择将它们按字母顺序排列。

SELECT mydata
FROM (
    SELECT mydata
    FROM mytable
    GROUP BY mydata
    ORDER BY COUNT(mydata) DESC
    LIMIT 3
) AS T1
ORDER BY mydata

结果:

'echo'
'lima'
'zulu'

测试数据:

CREATE TABLE mytable (mydata VARCHAR(100) NOT NULL);
INSERT INTO mytable (mydata) VALUES
    ('kilo'),
    ('lima'), ('lima'), ('lima'), ('lima'), ('lima'), ('lima'), ('lima'), ('lima'), ('lima'),
    ('golf'), ('golf'), ('golf'), ('golf'), ('golf'),
    ('echo'), ('echo'), ('echo'), ('echo'), ('echo'), ('echo'), ('echo'), ('echo'), ('echo'),
    ('zulu'), ('zulu'), ('zulu'), ('zulu'), ('zulu'), ('zulu'), ('zulu'), ('zulu');

关于MySQL - 选择出现次数最多的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2571005/

相关文章:

java - 为什么我的分区算法返回 ArrayIndexOutOfBoundsException

python - MySQL 用一条语句执行多个相似的选择查询

php - 我的选择查询在 ajax 中不起作用

合并排序的 C 实现,如 Cormen's et al "Introduction to algortithms"not working properly 所示

java - Java中的比较器问题

无法将 int 类型分配给 int* 类型

java - 每当我调用 "InsertionSort"方法时,输出文件都显示为空?我应该在哪里调用这个方法?

PHP - 在 INSERT INTO MySQL 语句中使用变量作为列名的一部分

mysql - 当该类别的任务插入到任务表中时,我想增加该类别的任务计数

mysql - 通过 WLAN 同步 MAMP 数据库