1

有没有办法根据值在 mysql 列中出现的频率对数据进行排序并生成它们DISTINCT。因此,如果在这样的表中有一个颜色列:

colors
------ ----
red   |
blue  | 
red   |
green |
blue  |
red   |
yellow|
blue  |
green |
red   |

结果将是:

red
blue
green
yellow

因为红色出现了 4 次,蓝色出现了 3 次,绿色出现了 2 次,黄色出现了 1 次。谢谢

4

2 回答 2

6

您需要对记录进行分组,然后对合适的聚合函数进行排序:

SELECT colors FROM my_table GROUP BY colors ORDER BY COUNT(*) DESC

sqlfiddle上查看。

于 2013-04-29T17:08:57.187 回答
1

使用分组/计数查询:

SELECT color, count(color) AS cnt
FROM colors
GROUP BY color
ORDER BY cnt DESC
于 2013-04-29T17:10:08.927 回答