Kodrill

OSS-DB Silver / SQL: データ操作とデータ型 ・ 無料問題 3/5

SQL: データ操作とデータ型 問題3[SQL コマンド]

次の SQL を実行したときの結果として、正しいものを選んでください。

SQL
CREATE TABLE emp (dept text, salary integer);SELECT dept FROM emp WHERE sum(salary) > 1000 GROUP BY dept;

選択肢

  • A.テーブルが空なので、0 行が返る
  • B.給与の合計が 1000 を超える部署が出力される
  • C.WHERE 句では集約関数を使えないので、エラーになる正解
  • D.sum は行ごとの値として計算され、給与が 1000 を超える行の部署が出力される

解説実行して確認済み

WHERE 句はグループにまとめる前の行を絞り込むので、集約関数は使えず、エラー (SQLSTATE 42803) になります。グループごとの集約結果で絞り込むには HAVING 句を使い、SELECT dept FROM emp GROUP BY dept HAVING sum(salary) > 1000; と書きます。

この問題の答えは、試験の対象バージョンでコードを実際に実行して確かめています。確かめ方は運営者情報に書いています。

「SQL: データ操作とデータ型」の要点を解説記事で読む

「SQL: データ操作とデータ型」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。