データ資格 模擬試験

DS検定 模擬試験 第1回 問69・データエンジニアリング(データ加工(ETL・SQL))

HAVINGによる集計後の絞り込み

表 sales(図)に対して、次のSQLを実行した結果として正しいものを1つ選べ。
SELECT store, SUM(amount) FROM sales GROUP BY store HAVING SUM(amount) >= 250;

表salesは(store, amount)の6行。(A,100)、(A,200)、(B,50)、(B,80)、(B,90)、(C,300)。
  1. A

    C(300)の1行

  2. B

    A(300)、B(220)、C(300)の3行

  3. C

    A(300)と C(300)の2行

  4. D

    B(220)の1行

正解と解説を見る

正解:C

GROUP BY で店ごとにまとめると合計は A = 300、B = 220、C = 300 で、HAVING SUM(amount) >= 250 はまとめた後の合計で絞るので A と C が残る。行を集計前に絞る WHERE と、集計後に絞る HAVING を取り違えやすい。

store合計HAVING SUM >= 250
A300残る
B220除かれる
C300残る

学習のポイント:集計前の行の条件は WHERE に、集計後のグループの条件は HAVING に書く。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公開されている出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人データサイエンティスト協会・一般財団法人統計質保証推進協会の公式サービスではありません。