3 つのカテゴリに基づいて学生の成績を保持するテーブルがあります。カテゴリごとに 5 つの等級 (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
等
成績をリストする2番目のテーブルがあります
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