有没有一种方法可以根据值在 mysql 列中出现的频率来对数据进行排序并将它们DISTINCT. 因此,如果表中有一个颜色列,如下所示:
colors
------ ----
red |
blue |
red |
green |
blue |
red |
yellow|
blue |
green |
red |
Run Code Online (Sandbox Code Playgroud)
结果将是:
red
blue
green
yellow
Run Code Online (Sandbox Code Playgroud)
因为红色出现了 4 次,蓝色出现了 3 次,绿色出现了两次,黄色出现了一次。谢谢
您需要对记录进行分组,然后对合适的聚合函数进行排序:
SELECT colors FROM my_table GROUP BY colors ORDER BY COUNT(*) DESC
Run Code Online (Sandbox Code Playgroud)