0

我需要一个 sql 查询来计算左侧列(下表)中数字 2、5、7 和 9 的不同出现次数。

我玩过 w DISTINCT 和 COUNT。需要一个查询来显示每个值有多少。

我知道对此有一个简单的解决方案,只是无法弄清楚。谢谢!

  CLASS_ID STUDENT_ID
---------- ----------
         2         12
         2         11
         2          2
         2          7
         2          8
         2         16
         2         21
         7         10
         7          2
         7          3
         7          4
         7          5
         7          6
         7          7
         7          8
         7          9
         9          2
         9         11
         9         12
         9         13
         9         14
         9         15
         9         16
         9         17
         9         18
         9         20
         9         21
         9         22
        10         12
        10          4
        10          3
        10          6
        10          8
        10          9
        10         12
        10         16
        10         18
        10         20
        10          2
        10          4
4

3 回答 3

3

使用Group By,WhereCount:

SELECT CLASS_ID, COUNT(*) AS COUNT
FROM Table1
WHERE CLASS_ID IN (2, 5, 7, 9)
GROUP BY CLASS_ID

Demo

于 2013-09-15T22:18:11.813 回答
2

您想在GROUP BYSQL 语句中添加一个子句,该子句将您的数据分组以进行聚合(如计数)。

SELECT CLASS_ID, count(*) FROM TABLE GROUP BY CLASS_ID

如果你只想找到超过 X 个学生的班级,你也可以添加一个HAVING子句:

SELECT CLASS_ID, count(*) FROM TABLE GROUP BY CLASS_ID HAVING count(*) > 20

于 2013-09-15T22:16:43.327 回答
0

我认为您应该使用“分组依据”:

select class_id, count(*) from tablename group by class_id
于 2013-09-15T22:45:01.813 回答