アプリ版:「スタンプのみでお礼する」機能のリリースについて

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つとして集計するにはどうすればいいのでしょか?

A 回答 (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

この回答への補足

期待した結果通りできましたありがとうございました。

補足日時:2009/05/26 10:47
    • good
    • 0

やり方はいろいろありそうだけど・・・。


select id, sum(評価結果) from (select distinct * from TABLE) as b group by id order by id
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!