R3午前2問6のEXCEPT句
イオさん
(No.1)
商品表と当月商品合計表からEXCEPT句を使用してSQL文を実行した結果を選択する問題について解答が「エ」ということですが、私は「ウ」と誤答しました。
問題集などの解説を見ると、
EXCEPT ・・・重複は排除する
EXCEPT ALL・・・重複をそのまま出力する
ということでしたので試しに
PostgreSQLでクエリを作成して実行してみました。
結果
EXCEPT句を使用したとき・・・K02 K04(2行出力)
EXCEPT ALL句を使用したとき・・・K01 K02 K02 K04(4行出力)
となぜか「K01」も出力されてしまいました。
商品表、当月商品仕入れ合計表、SQL文は問題の通りに入力し、「EXCEPT」の部分を「EXCEPT ALL」にしただけです。なぜ上記の結果になってしまったのか?
問題集などの解説を見ると、
EXCEPT ・・・重複は排除する
EXCEPT ALL・・・重複をそのまま出力する
ということでしたので試しに
PostgreSQLでクエリを作成して実行してみました。
結果
EXCEPT句を使用したとき・・・K02 K04(2行出力)
EXCEPT ALL句を使用したとき・・・K01 K02 K02 K04(4行出力)
となぜか「K01」も出力されてしまいました。
商品表、当月商品仕入れ合計表、SQL文は問題の通りに入力し、「EXCEPT」の部分を「EXCEPT ALL」にしただけです。なぜ上記の結果になってしまったのか?
2024.08.31 15:08
めんちゃんさん
(No.2)
これは単純に1つ目のテーブルにK01が2つあるからで
ALLを付けると個数も考慮されるという事だと思います。
1つ目 2つ目
K01 K01
K01 ・・・これが出ている
K02
K02
K03 K03
K04
K05
ALLを付けると個数も考慮されるという事だと思います。
1つ目 2つ目
K01 K01
K01 ・・・これが出ている
K02
K02
K03 K03
K04
K05
2024.09.01 09:59
イオさん
(No.3)
めんちゃんさん
なるほど。
K01の数の差が出力されているのですね。
分かり易い説明ありがとうございました。
なるほど。
K01の数の差が出力されているのですね。
分かり易い説明ありがとうございました。
2024.09.01 10:31
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。