私はここの初心者で、いくつかのテスト結果を保存するテーブルがあります。
列は 2 つの列に単純化できます。
EXECUTION_ID int(6) CASE_ID int(11)
RESULT varchar(10).
そして列 "RESULT" は実際には列挙型であり、値を'PASS' ,* 'FAIL' , 'NORESULT' * に保存します。
ここで、1 つの SQL クエリを使用して、すべての実行の統計を取得したいと考えています。
次のような結果セットの形式:
EXECUTION_ID | PASS_CNT FAIL_CNT | NORESULT_CNT
次のように実装する方法は 1 つしか見つかりません。
select A.execId,A.a,B.a,C.a from
(select execId,result,count(result) a from STAT_RESULTS group by execId,result having result='PASS') A left join
(select execId,result,count(result) a from STAT_RESULTS group by execId,result having result='FAIL') B on A.execId=B.execId left join
(select execId,result,count(result) a from STAT_RESULTS group by execId,result having result='NORESULT') C on A.execId=C.execId;
結果は次のようにリストされます。
execId pass fail noresult
55 169 77 null
56 46 9 1
57 120 13 3
58 91 45 null
59 95 44 null
60 179 9 5
同じことを行うより良い方法はありますか?
ありがとうございました!