SQL文で成績と性別での人数分布を求めるクロス集計関数が出来ず困ってます。
サンプルとしては
学年 性別 評価(ABC)
1年 男 A
1年 女 A
1年 男 A
1年 男 B
2年 男 B
2年 女 C
欲しい出力としては各サンプル毎の人数です。
1年 男-A評価,男B評価,男C評価,女A評価,女B評価,女C評価
2年 男-A評価,男B評価,男C評価,女A評価,女B評価,女C評価
3年 男-A評価,男B評価,男C評価,女A評価,女B評価,女C評価
・
・
・
という具合です。
以前は
SELECT COUNT(*) AS 分布人数, 性別, 成績 FROM 成績
GROUP BY 年齢, 性別, 学年 HAVING 学年 = @がくねん ORDER BY 年齢,成績
というSQL文で1学年毎に抽出していました。
クロス集計で1つのSQL文で出力したいのですがいかがでしょうか?
No.2ベストアンサー
- 回答日時:
表の列構成、元のデータ例、得たい結果例が示されていると、回答する側としても分かりやすいのですけどね。
次のようなSQLでは、いかがでしょうか?
select
学年,
count(case when 性別='m' and 評価='A' then 1 else null end) as 男A,
count(case when 性別='m' and 評価='B' then 1 else null end) as 男B,
count(case when 性別='m' and 評価='C' then 1 else null end) as 男C,
count(case when 性別='w' and 評価='A' then 1 else null end) as 女A,
count(case when 性別='w' and 評価='B' then 1 else null end) as 女B,
count(case when 性別='w' and 評価='C' then 1 else null end) as 女C
from t1
group by 学年
;
No.1
- 回答日時:
んーこんなのはどうでしょう、長いですけど構造は単純です。
良ければ質問者さま用に適宜書き換えてみてください。
SELECT '第一学年' AS 学年,
COUNT(CASE WHEN nenndo = '1' and sex = '男' and hyouka = 'A' THEN 1 ELSE null END) AS men_A,
COUNT(CASE WHEN nenndo = '1' and sex = '男' and hyouka = 'B' THEN 1 ELSE NULL END) AS men_B,
COUNT(CASE WHEN nenndo = '1' and sex = '男' and hyouka = 'C' THEN 1 ELSE NULL END) AS men_C,
COUNT(CASE WHEN nenndo = '1' and sex = '女' and hyouka = 'A' THEN 1 ELSE NULL END) AS women_A,
COUNT(CASE WHEN nenndo = '1' and sex = '女' and hyouka = 'B' THEN 1 ELSE NULL END) AS women_B,
COUNT(CASE WHEN nenndo = '1' and sex = '女' and hyouka = 'C' THEN 1 ELSE NULL END) AS women_C
FROM test20070707
UNION
SELECT '第二学年' AS 学年,
COUNT(CASE WHEN nenndo = '2' and sex = '男' and hyouka = 'A' THEN 1 ELSE NULL END) AS men_A,
COUNT(CASE WHEN nenndo = '2' and sex = '男' and hyouka = 'B' THEN 1 ELSE NULL END) AS men_B,
COUNT(CASE WHEN nenndo = '2' and sex = '男' and hyouka = 'C' THEN 1 ELSE NULL END) AS men_C,
COUNT(CASE WHEN nenndo = '2' and sex = '女' and hyouka = 'A' THEN 1 ELSE NULL END) AS women_A,
COUNT(CASE WHEN nenndo = '2' and sex = '女' and hyouka = 'B' THEN 1 ELSE NULL END) AS women_B,
COUNT(CASE WHEN nenndo = '2' and sex = '女' and hyouka = 'C' THEN 1 ELSE NULL END) AS women_C
FROM test20070707
UNION
SELECT '第三学年' AS 学年,
COUNT(CASE WHEN nenndo = '3' and sex = '男' and hyouka = 'A' THEN 1 ELSE NULL END) AS men_A,
COUNT(CASE WHEN nenndo = '3' and sex = '男' and hyouka = 'B' THEN 1 ELSE NULL END) AS men_B,
COUNT(CASE WHEN nenndo = '3' and sex = '男' and hyouka = 'C' THEN 1 ELSE NULL END) AS men_C,
COUNT(CASE WHEN nenndo = '3' and sex = '女' and hyouka = 'A' THEN 1 ELSE NULL END) AS women_A,
COUNT(CASE WHEN nenndo = '3' and sex = '女' and hyouka = 'B' THEN 1 ELSE NULL END) AS women_B,
COUNT(CASE WHEN nenndo = '3' and sex = '女' and hyouka = 'C' THEN 1 ELSE NULL END) AS women_C
FROM test20070707
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 憲法・法令通則 どなたかお願いします。憲法の問題です。 A社では、毎年度従業員の勤務に対する評定を10段階で評価し、 5 2022/12/02 23:46
- 再婚 30代後半女性を点数で付けると何点になりますか? 婚活男性の方に質問です。 女性を婚活から見た時の点 1 2022/10/11 23:14
- 婚活 婚活とは地獄ですか。皆さんの経験談を教えてください。 5 2023/08/03 21:24
- 大学受験 女子大ってコスパ良いですよね? 偏差値は津田塾が成成明学、東女・本女がニッコマの少し上ぐらいです。 4 2022/06/10 22:22
- 新卒・第二新卒 就職時の大学の成績について 5 2023/01/31 00:55
- カップル・彼氏・彼女 男は女の乳首の色形大きさにこだわりが強いですが女は男の乳首をどうこう言わないのは何故でしょうか? 9 2023/04/14 12:52
- その他(ニュース・時事問題) 「女性には女性の、男性には男性のよさが」←具体的にこれはなんでしょうか? 7 2022/04/02 19:12
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- 就職 将来デザイン業で働きたくて今年の春からデザイン学校に通い始めたのですが、一学期死ぬほど休んでしまい成 2 2022/09/05 22:25
- その他(悩み相談・人生相談) 新天地で孤立しています。 1 2023/04/22 16:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
女性はマンコ舐めてほしいんで...
-
男性側はセックスでの挿入時、...
-
生とゴムの違い
-
昨日の晩にスゴくいやらしい体...
-
処女を抱いた男性へ質問です
-
28才OLです、マスターベー...
-
男性に質問:彼女をオカズにし...
-
息子と性的関係になり抜け出せない
-
エロくなってきた妻
-
男性に質問です! 男性は女性の...
-
入れられてる側は(女性側)どん...
-
付き合えそうな女性との行為…想...
-
処女のとき、何回目のHで挿入...
-
男性は好きな女性なら挿入行為...
-
職場の女性社員を見て妄想する...
-
私はちんこが好きです。 凄く下...
-
セフレの女性が離れていきそうな時
-
男性は前戯だけでも我慢できる...
-
彼女はみんな彼氏にクンニをし...
-
女性はSEXの時に何故声がでるの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
女性はマンコ舐めてほしいんで...
-
男性側はセックスでの挿入時、...
-
息子と性的関係になり抜け出せない
-
男性が好きな人でオナニーする...
-
昨日の晩にスゴくいやらしい体...
-
生とゴムの違い
-
処女とエッチして 相手の男性が...
-
エロくなってきた妻
-
処女を抱いた男性へ質問です
-
28才OLです、マスターベー...
-
男性に質問です! 男性は女性の...
-
男性に質問:彼女をオカズにし...
-
処女のとき、何回目のHで挿入...
-
入れられてる側は(女性側)どん...
-
付き合えそうな女性との行為…想...
-
男性は好きな女性なら挿入行為...
-
職場の女性社員を見て妄想する...
-
私はちんこが好きです。 凄く下...
-
セフレの女性が離れていきそうな時
-
男性は前戯だけでも我慢できる...
おすすめ情報