- ベストアンサー
SQL文 合計値を出力する
ID 項目CD 評価結果 ------------------------- A 1-1-1 ○ A 1-1-1 ○ B 1-1-1 × C 1-1-1 ○ A 1-2-1 ○ A 1-2-1 ○ B 1-2-1 ○ C 1-2-1 〇 上記のテーブルがあります 評価結果は、○と×があり、項目CDごとに集計を行い、項目CDが同じ場合は、○がいつくあっても1とみなして計算するということをおこないたいです 理想SELECT結果 ID 合計 -------------- A 2 (1-1-1で○が2つあるが、1つとして計算) B 1 C 2 SELECT ID,SUM(評価結果) FROM TABLE GROUP BY ID でIDと合計までは出せました 現在のSELECT結果 ID 合計 -------------- A 4 (すべての○の合計を出力) B 1 C 2 項目CDが同じ場合"○"を1つとして集計するにはどうすればいいのでしょか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
DB2とかORACLEなら通るはず。 SELECT ID,COUNT(DISTINCT 項目CD) FROM TABLE WHERE 評価結果=○ GROUP BY ID,項目CD ACCESSなら、こっちで。 SELECT ID,COUNT(項目CD) FROM (SELECT DISTINCT ID,項目CD FROM TABLE WHERE 評価結果="○") GROUP BY ID
その他の回答 (1)
- OKwebb
- ベストアンサー率44% (92/208)
やり方はいろいろありそうだけど・・・。 select id, sum(評価結果) from (select distinct * from TABLE) as b group by id order by id
補足
期待した結果通りできましたありがとうございました。