• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:積み上げ棒グラフのためのSQL SELECT文)

積み上げ棒グラフのためのSQL SELECT文

このQ&Aのポイント
  • Visual Studio Express 2013 for Webでデータベースアプリを作成し、積み上げ棒グラフを作成するためのSQL SELECT文を教えてください。
  • データはPerson表にあり、横軸S_Id、縦軸C_Idの数を元に積み上げ棒グラフを作成します。
  • 具体的には、S_Id毎にC_Idの数の内訳を示したグラフを作成し、カウント対象はZがNULLでないものになります。

質問者が選んだベストアンサー

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.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の種類分だけ列記しなくてはいけませんが・・

nayamerunikki
質問者

お礼

ありがとうございました。 うまくできました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> 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;

nayamerunikki
質問者

補足

ご回答ありがとうございます。 しかし、積み上げ棒グラフのためには、 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に列挙する必要があります。

関連するQ&A