平成26年秋期午後問4

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
マシさん  
(No.1)
https://www.fe-siken.com/kakomon/26_aki/pm04.html
設問3の
GROUP BY 書籍表.書籍番号,書籍表.書籍名

のところが何をしているのか分かりません。
書籍表は元々書籍番号は主キーであり、書籍名も主キーに対応しているため重複するものではありません。

WHERE文で
書籍表.書籍番号=貸出表.書籍番号

ここが鍵になっていると思うのですが、なぜ
GROUP BY 貸出表.書籍番号

とならないのでしょうか
重複しているのは貸出表の書籍番号ですよね。

仮に結合したからとして
『書籍表.書籍名』
ここが良く分かりません。
2021.09.22 23:25
GinSanaさん 
FE シルバーマイスター
(No.2)
GROUP BY(のエラー)は説明するのが大変な部類なんですが、基本よくあるのは項目が足りないとかいわれるエラーです。
原理は
taityo-diary.hatenablog.jp/entry/2018/06/09/080903
SQLのGROUP BY句の処理を理解する
の通り
GROUP BY句に存在しない列名をSELECT句に指定するとエラーになります。
なわけですが、逆に言えば集合関数以外をSELECTに書いたらGROUP BYにも転記しろよということです。
で、書籍表.書籍名がなぜいるのか?は、たしかにいらないけど、それだとISBNからいちいち本の名前を逆引きしろと言っているレベルで不便きわまりないので、名前もわかるようにつけたんでしょうね。
2021.09.23 13:05
マシさん  
(No.3)
集合関数を用いた場合、その他の列が使われるならGROUP BYもセットで必要になるんですね。
参考書にはそのような記載がなかったためなんの処理なのかが分かりませんでした。
ありがとうございます。
2021.09.24 01:28

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop