次のテスト データが与えられます。
╔═════════╦══════╦═══════╗
║ STUDENT ║ TEST ║ SCORE ║
╠═════════╬══════╬═══════╣
║ Henry ║ 1 ║ 80 ║
║ Henry ║ 2 ║ 70 ║
║ Henry ║ 3 ║ 50 ║
║ Mark ║ 1 ║ 60 ║
║ Mark ║ 2 ║ 90 ║
║ Mark ║ 3 ║ 70 ║
║ Frank ║ 1 ║ 80 ║
║ Frank ║ 2 ║ 70 ║
║ Frank ║ 3 ║ 80 ║
╚═════════╩══════╩═══════╝
ここで、学生ごとに 80 のスコアを何回取得したか、およびその横に 80 の合計数を表示することに興味があります。次のようなものです。
╔═════════╦════════════╦══════════════╗
║ STUDENT ║ OWN_80_CNT ║ TOTAL_80_CNT ║
╠═════════╬════════════╬══════════════╣
║ Frank ║ 2 ║ 3 ║
║ Mark ║ 0 ║ 3 ║
║ Henry ║ 1 ║ 3 ║
╚═════════╩════════════╩══════════════╝
私がこれまでに持っているのは、own_80_cnt です。しかし、そのすぐ隣に total_80_cnt を追加する方法がわかりません。
SELECT student,
SUM(CASE WHEN score = 80 THEN 1 ELSE 0 END) AS own_80_cnt
FROM mytable
GROUP BY student;
これは 1 つの SELECT ステートメント内でも可能ですか (推奨)? DBMS はオラクルです。