【发布时间】:2013-03-27 15:57:20
【问题描述】:
我有一个表格,其中包含基于三个类别的学生成绩。每个类别有五个等级(A、B、C、D、E),因此表格如下所示:
id | cat1 | cat2 | cat3
1 A B A
2 D C D
3 B A E
4 C B D
等
我有第二张表格列出了成绩
grade
A
B
C
D
E
我需要能够对此数据运行查询,以便计算每个年级在每个类别中获得的成绩数。像这样的:
Cat1 | Cat2 | Cat 3
A 1 1 1
B 1 2 0
C 1 1 0
D 1 0 2
E 0 0 1
我运行了以下查询,我知道它不正确,但产生的结果接近预期:
SELECT g.grade, COUNT( mb.cat1) , COUNT( mb.cat2) , COUNT( mb.cat3)
FROM markbook mb, grades g
WHERE g.grade = mb.cat1
GROUP BY g.grade
【问题讨论】: