テストフィールドを含むテーブルがあります。例
id | test1 | test2 | test3 | test4 | test5
+----------+----------+----------+----------+----------+----------+
12345 | P | P | F | I | P
したがって、各レコードについて、合格、不合格、または不完全(P、F、またはI)の数を知りたいのです。
GROUP BY値を設定する方法はありますか?
擬似:
SELECT ('P' IN (fields)) AS pass
WHERE id = 12345
どういうわけかグループ化する必要のあるテストフィールドが約40ありますが、この非常に醜い長いクエリを作成したくありません。はい、テーブルを2つまたは3つの別々のテーブルに書き直す必要があることはわかっていますが、これは別の問題です。
推測される結果:
passed | failed | incomplete
+----------+----------+----------+
3 | 1 | 1
提案?
注:私はPostgreSQL 7.4を実行していますが、アップグレードしています