MySQL数据库中最常出现的值

问题描述:

如何选择MySQL数据库中最常出现的值?假设我有一个num场,与这些行:MySQL数据库中最常出现的值

1, 1, 3, 1, 1, 17, 12, 1, 3, 17, 3

如果我想找到的三个最频繁出现的值,1,3,和17,我怎么会去这样做(和得到一个计数)?

将正确的方法是SELECT UNIQUE并为每个单独的值做一个计数?有没有更有效的方法?这似乎是大数据集失败。

感谢您的帮助!这是在PHP中,有一个MySQL数据库。

像这样的东西应该工作:

SELECT num, COUNT(num) AS ct 
FROM yourtable 
GROUP BY num 
ORDER BY ct DESC 

这由num柱告诉MySQL组的结果。通过还选择COUNT(num)作为为每个num值找到的行数,然后我们可以发出ORDER BY,其将根据num每个值具有的行数来排序结果。

随着表中这样的值:

1, 1, 3, 1, 1, 17, 12, 1, 3, 17, 3 

的结果将是:

num | ct 
============ 
    1 | 5 
    3 | 3 
    17 | 2 
    12 | 1 
+0

什么是'ct'?解释你的所有代码? – Cyclone 2011-03-20 01:28:29

+0

添加了一些解释 – jterrace 2011-03-20 01:30:49

+0

那么给我的数据集的结果是什么呢? – Cyclone 2011-03-20 01:33:43

MySQL的食谱对generating frequency distributions一个部分,它基本上可以归结为类似

SELECT num, COUNT(num) AS occurrence 
FROM table 
GROUP BY num