mysql - SQL 按计数排序

如果我有这样的表格和数据:

ID |  Name  |  Group   

1    Apple     A    

2    Boy       A

3    Cat       B

4    Dog       C

5    Elep      C

6    Fish      C

我希望按照 Group 的总和从小到大排序,例如: A-2 条记录,B-1 条记录,C-3 条记录,所以会变成:

3    Cat       B

1    Apple     A    

2    Boy       A

4    Dog       C

5    Elep      C

6    Fish      C

我试过了

    $sql = "SELECT ID,Name FROM table ORDER BY COUNT(Group)";

但它只为我返回一个结果。

有什么提示吗?谢谢。

最佳答案

您需要先聚合数据,这可以使用 GROUP BY 子句来完成:

SELECT Group, COUNT(*)
FROM table
GROUP BY Group
ORDER BY COUNT(*) DESC

DESC 关键字允许您首先显示最高计数,默认情况下 ORDER BY 以升序排列,这将首先显示最低计数。

https://stackoverflow.com/questions/9545637/

相关文章:

mysql - 如何处理 mysqldump 创建的巨大行长

mysql - 我们如何区分 LEFT OUTER JOIN 与 Left Join

mysql - 删除匹配行的更快方法?

java - 在 Java 中处理 MySQL 日期时间和时间戳

mysql - 获取不带表格格式的SQL查询结果

mysql - 如何重新排列 MySQL 列?

mysql - 如何更改超过 1 列的表列数据类型?

mysql - 如何在 phpMyAdmin 中显示 UTF-8 字符?

mysql - SQL:在 MySQL 中将现有列设置为主键

mysql - 将表从 Amazon RDS 导出到 CSV 文件