- ベストアンサー
積み上げ棒グラフのためのSQL SELECT文
- Visual Studio Express 2013 for Webでデータベースアプリを作成し、積み上げ棒グラフを作成するためのSQL SELECT文を教えてください。
- データはPerson表にあり、横軸S_Id、縦軸C_Idの数を元に積み上げ棒グラフを作成します。
- 具体的には、S_Id毎にC_Idの数の内訳を示したグラフを作成し、カウント対象はZがNULLでないものになります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こういうことでしょうか? select S_Id , count(case C_Id when 1 then 1 else null end) Count_1 , count(case C_Id when 2 then 1 else null end) Count_2 , count(case C_Id when 3 then 1 else null end) Count_3 , count(case C_Id when 4 then 1 else null end) Count_4 , count(case C_Id when 5 then 1 else null end) Count_5 , count(case C_Id when 6 then 1 else null end) Count_6 , count(case C_Id when 7 then 1 else null end) Count_7 from Person where Z is not null group by S_Id; C_Idの種類分だけ列記しなくてはいけませんが・・
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
> COUNTで、ZがNULLでなくかつC_Id=1のものをカウントする、 単にWhereで良いのでは? SELECT S_Id, C_Id, COUNT(Z) FROM Person WHERE Z ls Not Null AND C_Id = 1 GROUP BY S_Id, C_Id;
補足
ご回答ありがとうございます。 しかし、積み上げ棒グラフのためには、 SELECT S_Id, C_Id=1の数(ZがNULLでない), C_Id=2の数(ZがNULLでない), C_Id=3の数(ZがNULLでない), ... FROM Person GROUP BY S_Id; のような形にする必要があるようで、「ZがNULLでないC_Id=xの数」を一語でSELECTに列挙する必要があります。
お礼
ありがとうございました。 うまくできました。