![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Visual Studio Express 2013 for Webでデータベースアプリを作成しています。
例えば、
Person表
IdS_IdC_IdZ
11212
2222
323NULL
444NULL
54444
6555
7111
8167
9777
10666
1115NULL
12455
13455
14678
のようなデータがあり、横軸S_Id、縦軸C_Idの数、の積み上げ棒グラフ(StackedColumn)
(S_Id毎にC_Idの数の内訳を示したグラフ。カウント対象はZがNULLでないものだけ)
を作成するには、どのようなSQL SELECT文を書けばよいでしょうか。
目的とする要素数は、
SELECT S_Id, C_Id, COUNT(Z)
FROM Person
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;
のような形にする必要があるようで、うまく書けません。
COUNTで、ZがNULLでなくかつC_Id=1のものをカウントする、というようなことができればよいのですが。
![「積み上げ棒グラフのためのSQL SELE」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/5/1188986_5497cf030a452/M.jpg)
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の種類分だけ列記しなくてはいけませんが・・
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;
この回答への補足
ご回答ありがとうございます。
しかし、積み上げ棒グラフのためには、
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- PHP データベースを用いたwebページ 1 2022/12/27 20:12
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
datetime型でNULL値を入れたい。
-
差し込み後、元データを変更し...
-
外部参照してるキーを主キーに...
-
エクセルVBAコードで教えて下さ...
-
フィルターかけた後、重複を除...
-
SELECT 文 GROUP での1件目を...
-
1、Rstudioで回帰直線を求める...
-
1日に1人がこなせるプログラム...
-
エクセルで最後の文字だけ置き...
-
SQLで特定の項目の重複のみを排...
-
カーソル0件の時にエラーを発生...
-
止まなーい雨はない でもお前に...
-
商品番号を入力すると、商品名...
-
EXISTSを使ったDELETE文
-
INSERT文でフィールドの1つだ...
-
Oracleのデータ型、NUMBERについて
-
SQLについて教えて下さい with(...
-
列のヘッダーを含めるのをデフ...
-
処理件数を非表示にしたい
-
SQL Left Join で重複を排除す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
datetime型でNULL値を入れたい。
-
積み上げ棒グラフのためのSQL S...
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
外部参照してるキーを主キーに...
-
SELECT 文 GROUP での1件目を...
-
for whichの使い方
-
SQLで特定の項目の重複のみを排...
-
INSERT文でフィールドの1つだ...
-
過剰なオブジェクト指向脳から...
-
カーソル0件の時にエラーを発生...
-
SQL Date型の列から年月だけを...
-
速度が低下し無効になったアド...
-
副問合せの書き方について
-
1、Rstudioで回帰直線を求める...
-
重複していないレコードの抽出...
-
SQL文で、合計が0のレコードを...
-
EXISTSを使ったDELETE文
-
SQLで列名を変数にできないでし...
おすすめ情報