- ベストアンサー
SQL初心者のための所属ごとの結果表示
- SQL初心者のための所属ごとの結果表示について質問です。健康診断テーブルと個人情報テーブルから所属ごとの結果を表示したいです。
- 健康診断テーブルと個人情報テーブルから所属ごとの結果を出力するプログラムの組み方について教えてください。
- SQL初心者ですが、健康診断テーブルと個人情報テーブルから所属ごとの結果を表示する方法を教えていただけますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
間違ってるので訂正。 select B.所属,A.結果,count(*) as "人数" from ( select x.*,row_number() over(partition by ID order by 回数 desc) R from 健康診断テーブル x ) A, 個人情報テーブル B where R=1 and A.ID=B.ID group by B.所属,B.結果 ;
その他の回答 (3)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
自分が書くなら、探査が各1回ずつで済むので、こんな感じかな・・ select B.所属,count(*) from ( select x.*,row_number() over(partition by ID order by 回数 desc) R from 健康診断テーブル x ) A, 個人情報テーブル B where R=1 and A.ID=B.ID group by A.ID,B.結果 ;
- dda167
- ベストアンサー率76% (55/72)
select A.所属, B.結果, count(*) as 人数 from 個人情報 A, 健康診断 B where A.ID = B.ID and B.回数 = (select max(回数) from 健康診断 C where C.ID = B.ID) group by A.所属, B.結果 こんな感じじゃないですか
お礼
ありがとうございます。これが一番簡単な方法だと思いました。 このような発想すら浮かばないくらい、初心者かつ不向きな脳内なので大変です。 ただ、なぜかこの方法でも動きませんでした。 説明不足で申し訳ありません。
- wildcat-yp
- ベストアンサー率37% (303/813)
select 所属,結果,count(id) 人数 from 健康診断テーブル natural join 個人情報テーブル group by 所属,結果 試してないですが、こんな感じではどうでしょう?
お礼
ありがとうございます。 ナチュラルジョインというのがあるのですね、勉強になります。 ただこれではうまくいきませんでした。 説明不足だったと思います。申し訳ありません。
お礼
動きました!!本当にありがとうございます。 内容も間違っていないようなので一安心してました。 かなり複雑に見えます、どういう動きをしているかは後で勉強してみます。