「納品」表(顧客番号, 商品番号, 数量)から、顧客ごとの数量の合計が10以上の顧客について、顧客番号と合計を求めたい。SQL 文「SELECT 顧客番号, SUM(数量) FROM 納品 [ a ]」の a に入れるものとして、適切なものはどれか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 BGROUP BY 顧客番号 HAVING SUM(数量) >= 10
解説
正解は「GROUP BY 顧客番号 HAVING SUM(数量) >= 10」です。GROUP BY で顧客番号ごとにグループを作り、HAVING 句でグループごとの集計値に条件を付けます。数量の合計を求めるには SUM を使います。「GROUP BY 顧客番号 HAVING COUNT(数量) >= 10」は、数量の合計ではなく、納品の行数(件数)が10以上の顧客を求めてしまいます。「WHERE SUM(数量) >= 10 GROUP BY 顧客番号」は、行ごとに評価される WHERE 句に集約関数を書いており、構文エラーになります。「ORDER BY 顧客番号 HAVING SUM(数量) >= 10」は、グループ化をしておらず、句の順序も誤っています。
- #SQL
- #集約関数
この調子でOS・ネットワーク・データベースを続けて解く
▶ この科目の連続演習へ進む(10問)