お世話になります。
ここ数日、外部結合とカウントを組み合わせたSQL
が思うようにかけず大変悩んでいます。
学校・クラス・生徒テーブルをJOINして、
合否判定数を求めたいのですが、
期待する結果になりません。どなたか助けて下さい><
ポスグレ+PHPです。
事情によりプログラム側でカウントできないので、
SQLで一気に取得しなければならないのがネックです。
以下3テーブルと期待する結果テーブルです。
/////////////////////////////////////////////////
学校テーブル
--------------
ID 学校名
--------------
1 あああ
2 いいい
--------------
クラステーブル
----------------------------
ID 学校ID クラス名
----------------------------
1 1 6-1組
2 1 6-2組
3 2 5-1組
----------------------------
生徒テーブル
----------------------------------------------------
ID 学校ID クラスID 生徒名 合格判定
----------------------------------------------------
1 1 1 AAAAAA TRUE
2 1 1 BBBBBB FALSE
3 1 2 CCCCCC TRUE
----------------------------------------------------
期待する結果
----------------------------------------
ID 学校名 受験数 合格数
----------------------------------------
1 あああ 3 2
2 いいい 0 0
----------------------------------------
/////////////////////////////////////////////////
どなたか助けてやってくださいm(_ _)m
No.1ベストアンサー
- 回答日時:
クラステーブルと結合する必要はないんじゃありませんか。
select g.id,g.学校名,count(s.id) as 受験数,
sum( case when s.合格判定=true then 1 else 0 end ) as 合格数
from
学校テーブル g left join 生徒テーブル s
on g.id = s.学校ID
group by g.id,g.学校名
order by g.id
nora1962さまありがとうございました^^
期待するデータが得られました!
週明けのお返事となり申し訳ありません。
nora1962さまのご教授により、
SQLの知識を深めることができました、
心より感謝致しますm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
Access パラメータクエリをcsv...
-
SQLサーバから、項目の属性(型...
-
sqlで、600行あるテーブルを100...
-
副問合せの書き方について
-
エクセルの関数について教えて...
-
【MySQL】auto_incrementの値を...
-
期間の重複を調べるSQL文につい...
-
上位3位を求めるSQL文は?
-
Updateの複数テーブル条件時のL...
-
VBAでボタンをクリックする方法...
-
inner joinをすると数がおかし...
-
accessに対してSQL文を発行する...
-
select文のwhere句に配列を入れ...
-
WordpressのContact form 7でzi...
-
エラー 1068 (42000): 複数の主...
-
PL/SQLの変数について
-
MySQL NULLだけをカウントして...
-
VIEWの元のテーブルのindexって...
-
Sumで該当データがない場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
副問合せの書き方について
-
select文のwhere句に配列を入れ...
-
マイクラPC版のコマンドで効率...
-
SQLサーバから、項目の属性(型...
-
エラー 1068 (42000): 複数の主...
-
[MySQL] 3つのテーブルの結合で...
-
Access パラメータクエリをcsv...
-
SQLにて特定の文字を除いた検索...
-
SQL Left Join で重複を排除す...
-
ストアドのエラーについて
-
Unionした最後にGROUP BYを追加...
-
バインド変数について
-
PL/SQLの変数について
-
sqlで、600行あるテーブルを100...
-
WordpressのContact form 7でzi...
-
selectした大量データをinsert...
-
inner joinをすると数がおかし...
おすすめ情報