mysql - SQL 按计数排序

标签 mysql database sql-order-by

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

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 以升序排列,这将首先显示最低计数。

关于mysql - SQL 按计数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9545637/

相关文章:

php - 获取下一个自动增量

mysql - 如何使用 InnoDB 引擎减少此查询的查询时间

mysql - 在一个sql查询中选择不同时间集中的结果

sql - 用空格替换引号之间的逗号

mysql存储函数参数语法错误

sql - ORDER BY 查询中的 IFELSE 语句

PHP - 使用下拉菜单对列表进行排序

php - 如何在有条件的地方使用 Count by laravel eloquent

database - 多个数据库与一个数据库,ID 用于分隔组织

MYSQL高级排序