首页 文章

按大多数常用值排序mysql结果

提问于
浏览
0

有没有办法根据值出现在mysql列中的频率来订购数据,并使它们成为 DISTINCT . 所以,如果表中有一个颜色列,如下所示:

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

结果将是:

red
blue
green
yellow

红色出现4次,蓝色3次绿色两次,黄色一次 . 谢谢

2 回答

  • 1

    您需要对记录进行分组,然后对合适的aggregate function进行排序:

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

    sqlfiddle上看到它 .

  • 4

    使用分组/计数查询:

    SELECT color, count(color) AS cnt
    FROM colors
    GROUP BY color
    ORDER BY cnt DESC
    

相关问题