SQL GROUP BYでエラーが起きる原因

前提

実現したいこと

https://sqlab.net/works/challenge/37/
上記サイトの問題を解いている中で、エラーになってしまいます。

前提

現在SQLの勉強をしているのですが、
GROUP BYにてテーブル結合をさせたのち、条件指定させたいのですが、エラーになってしまいます。

対象のテーブルは上記記載のURLにテーブルが記載されておりますので、そちらをご確認いただければと思います。

発生している問題・エラーメッセージ

ERROR: column "b.id" must appear in the GROUP BY clause or be used in an aggregate function

該当のソースコード

SQL

1SELECT b.name as name 2FROM books as b 3 4JOIN book_sales as bs 5ON b.id = bs.book_id 6 7GROUP BY bs.book_id 8HAVING SUM(bs.stock) = 0

わからない点

この問題が乗っているサイトに答えとして、以下のソースが記載されています。

SQL

1SELECT name 2FROM books 3JOIN book_sales 4ON books.id = book_sales.book_id 5GROUP BY name 6HAVING SUM(book_sales.stock) = 0;

私がGROUP BYで指定しているカラムは「book_sales」テーブルの'book_id'ですが、答えでは「books」テーブルの'name'を指定しています。

「book_sales」テーブルの'book_id'を指定しても同じ結果が返ってくると思ったのですが、何が原因でエラーになるのかがわかりません。
どなたか何が原因なのかご教授いただきたいと思いますのでよろしくお願いいたします。

コメントを投稿

0 コメント