我有一张表格,其中包含基于三个类别的学生成绩。每个类别有五个等级(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
ETC
我有第二张表列出成绩
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