• ベストアンサー

たびたび失礼します。

以下の問題の答えがまったくわかりません。 【全選手の最高身長と最低体重、平均J1出場をそれぞれ最高身長、最低体重、平均J1出場という列名で抽出】 下のようにSQLを記述しました。 SELECT 選手名,MAX(身長) AS 最高身長,MIN(体重) AS 最低体重,AVG(J1出場) AS 平均J1出場 FROM 選手一覧 GROUP BY 選手名,身長,体重,J1出場 すると各選手の身長・体重・J1出場が最高身長、最低体重、平均J1出場という列名ですべて出てきてしまいます。 なにが違うのでしょうか。

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

  • ベストアンサー
  • neko_noko
  • ベストアンサー率45% (146/319)
回答No.1

>GROUP BY 選手名,身長,体重,J1出場 まずはここでしょう。選手名、身長、体重、J1出場すべての項目でグループ化してますから。 これだと、「各選手の、身長、体重、J1出場ごとの最大・・・」ということになります。 「,身長,体重,J1出場」少なくともここは不要です。 ここまでで、選手ごとの身長の最大…が出ます。 選手ごとに複数のデータ(シーズン毎の推移みたいな感じ)があって、 各選手ごとに身長の最大…を求めるならこれでいいですが、 問題が1つのデータとして身長の最大…を出すということだとすると、 GROUP BY句に残っている選手名も不要です(つまりGROUP BY句自体不要) また、SELECT文の選手名もいらないのでここも除く。 こんな感じでどうでしょう。 問題の意図を読み違えてたらごめんなさい。

tatsunami
質問者

お礼

夜遅くにご回答本当にありがとうございます。 回答者様のお答えどおりに入力しなおしたらきれいに抽出されました! やっぱりSQLは難しいです・・・(泣)でももう少しがんばってみます。 本当にありがとうございました。

関連するQ&A