経営情報システム H21年度 第10問

第10問

下表は、いくつかの商品の2009年月日から日までの売上履歴である。表 の行を件の販売履歴としたとき、件以上の販売履歴がある商品について、そ の商品名、販売件数、販売数量の平均、を求め、それらを販売数量の平均の降順に 表示したい。それを行うためのSQL 文を下記に示す。文中の空欄A~Dに入る記 述の組み合わせとして最も適切なものを下記の解答群から選べ。

第10問の図
  1. A:COUNT(*) B:COUNT(*)>2 C:WHERE D:ASC
  2. A:COUNT(*) B:COUNT(*)>=2 C:ORDER BY D:DESC
  3. A:COUNT(商品名) B:COUNT(商品名)>1 C:WHERE D:DESC
  4. A:COUNT(商品名) B:COUNT(商品名)>=2 C:ORDER BY D:ASC ― 10― ◇M6(557―152)
▼ 解答・解説を見る

正解:

解答:イ

〔リード〕商品ごとに「販売件数・販売数量の平均」を集計し、件数が一定以上の商品だけを抽出して平均の降順で表示するSQLを完成させる。商品名でGROUP BYした集計に対する条件・並べ替えを考える。

  • :販売件数(行数)は COUNT(*) で数える。COUNT(商品名) でも可だがNULLを除く点が異なり、件数カウントの素直な表現は COUNT(*)
  • :「件以上の販売履歴がある商品」を抽出する集計後の条件はHAVING句で、件数が基準値以上を表す COUNT(*)>=2(「2件以上」)が適切。>2 は「3件以上」となり不適。
  • :販売数量の平均で並べ替えるのは ORDER BYWHERE は集計前の行条件であり並べ替えではない。
  • :降順は DESCASCは昇順)。

これらを満たす組み合わせは A:COUNT()、B:COUNT()>=2、C:ORDER BY、D:DESC。

  • ア(×):Bが COUNT(*)>2(3件以上)で「2件以上」と不一致、C・DもWHERE・ASCで誤り。
  • イ(○):上記すべてを満たす。
  • ウ(×):Bが >1(実質2件以上だが)でも、D=DESCは可だがC=WHEREが誤り。
  • エ(×):C=ORDER BYは正しいがD=ASC(昇順)が「降順」と不一致。

よって

#データベース

← 経営情報システムの一覧へ戻る