caseを使った条件分岐の加算がうまくいかない
SQLで条件によって加算するか、しないかを判定したいと思っています。
■テーブル:test
name,flag,number
mike,4,1
mike,4,2
mike,5,3
mike,6,4
mike,7,5
mike,8,6
mike,9,7
■書いたSQL
SELECT
test.name AS "name",
(CASE WHEN flag = '4' THEN sum(number) ELSE NULL END) AS "4",
(CASE WHEN flag = '5' THEN sum(number) ELSE NULL END) AS "5",
(CASE WHEN flag = '6' THEN sum(number) ELSE NULL END) AS "6",
(CASE WHEN flag = '7' THEN sum(number) ELSE NULL END) AS "7",
(CASE WHEN flag = '8' THEN sum(number) ELSE NULL END) AS "8",
(CASE WHEN flag = '9' THEN sum(number) ELSE NULL END) AS "9"
FROM test
GROUP BY
test.name
■結果
4,5,6,7,8,9
null,null,null,null,null,28
欲しい結果は、フラグが4ののものの合計。flagが「4」の場合は、「3」という結果が返ってきてもらいたいです。
flagが5の場合は、3が返ってきてもらいたいです。
SQLが間違っているのですが、どこが間違っているのかわかりません。どのように修正すればよろしいでしょうか?よろしくお願いします。
環境はSQLiteを使用しています。