小编典典

SQL按计数顺序

mysql

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

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)";

但这只会为我返回一个结果。

有什么提示吗?谢谢。


阅读 370

收藏
2020-05-17

共1个答案

小编典典

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

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

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

2020-05-17