平成28年春期午後問3
新人さん
(No.1)
設問2にでてくるSQL文について、
設問自体とは関係ないのですが最後の行に
GROUP BY 利用表.アトラクション番号,アトラクション表.アトラクション名
とありますが、ここに「アトラクション表.アトラクション名」を記載しなかった場合、
どうなってしまうのでしょうか?
利用表.アトラクション番号のGROUPだけで事足りてそうだな思って引っかかりました。
https://www.fe-siken.com/kakomon/28_haru/pm03.html
設問自体とは関係ないのですが最後の行に
GROUP BY 利用表.アトラクション番号,アトラクション表.アトラクション名
とありますが、ここに「アトラクション表.アトラクション名」を記載しなかった場合、
どうなってしまうのでしょうか?
利用表.アトラクション番号のGROUPだけで事足りてそうだな思って引っかかりました。
https://www.fe-siken.com/kakomon/28_haru/pm03.html
2021.02.17 13:44
かなさん
★FE ブロンズマイスター
(No.2)
dev.mysql.com/doc/refman/5.6/ja/group-by-handling.htmlで、
標準 SQL では、GROUP BY 句を含むクエリーは、GROUP BY 句で名前が指定されていない選択リスト内の非集約カラムを参照できません。
と書かれている通り、GROUP BYで指定されていない列を集約関数を使わずに参照することはできません。
この問題の場合、「利用表.アトラクション番号」と「アトラクション表.アトラクション名」を集約関数を使わずに参照しているため、両方ともGROUP BYで指定してあげないといけません。
標準 SQL では、GROUP BY 句を含むクエリーは、GROUP BY 句で名前が指定されていない選択リスト内の非集約カラムを参照できません。
と書かれている通り、GROUP BYで指定されていない列を集約関数を使わずに参照することはできません。
この問題の場合、「利用表.アトラクション番号」と「アトラクション表.アトラクション名」を集約関数を使わずに参照しているため、両方ともGROUP BYで指定してあげないといけません。
2021.02.17 15:02
新人さん
(No.3)
かなさんありがとうございます
GROUP BY にそんな制約があるとはしりませんでした。
ありがとうございました。
GROUP BY にそんな制約があるとはしりませんでした。
ありがとうございました。
2021.02.17 15:09
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告