我有一个这样的SQL表:
Student_id mark course
---------- -------- ---------
1 15 math
1 15 physics
2 15 math
2 16 physics
并希望产生此输出:
Student_id mark count
---------- -------- ---------
1 15 2
2 15 1
2 16 1
计数每个学生的单个唯一标记的数量(在任意数量的课程中)
答案 0 :(得分:2)
SELECT `student_id`, `mark`, count(1) AS `count`
FROM `the_table`
GROUP BY `student_id`, `mark`
;
如果您希望按照特定顺序获得结果,那么现在" GROUP BY"在MySql中做到了,但是我最近听说它在最新版本中被弃用了,所以你可能想要在GROUP BY之后添加一个ORDER BY来为将来证明一点。