• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL初心者のため、初歩的な質問だと思いますが、回答お願いします。 )

SQL初心者のための所属ごとの結果表示

このQ&Aのポイント
  • SQL初心者のための所属ごとの結果表示について質問です。健康診断テーブルと個人情報テーブルから所属ごとの結果を表示したいです。
  • 健康診断テーブルと個人情報テーブルから所属ごとの結果を出力するプログラムの組み方について教えてください。
  • SQL初心者ですが、健康診断テーブルと個人情報テーブルから所属ごとの結果を表示する方法を教えていただけますか?

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

  • ベストアンサー
回答No.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.結果 ;

aochan1031
質問者

お礼

動きました!!本当にありがとうございます。 内容も間違っていないようなので一安心してました。 かなり複雑に見えます、どういう動きをしているかは後で勉強してみます。

その他の回答 (3)

回答No.3

自分が書くなら、探査が各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)
回答No.2

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.結果 こんな感じじゃないですか

aochan1031
質問者

お礼

ありがとうございます。これが一番簡単な方法だと思いました。 このような発想すら浮かばないくらい、初心者かつ不向きな脳内なので大変です。 ただ、なぜかこの方法でも動きませんでした。 説明不足で申し訳ありません。

回答No.1

select 所属,結果,count(id) 人数 from 健康診断テーブル natural join 個人情報テーブル group by 所属,結果 試してないですが、こんな感じではどうでしょう?

aochan1031
質問者

お礼

ありがとうございます。 ナチュラルジョインというのがあるのですね、勉強になります。 ただこれではうまくいきませんでした。 説明不足だったと思います。申し訳ありません。

関連するQ&A