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

選択肢
- 1A:COUNT(*) B:COUNT(*)>2 C:WHERE D:ASC
- 2A:COUNT(*) B:COUNT(*)>=2 C:ORDER BY D:DESC
- 3A:COUNT(商品名) B:COUNT(商品名)>1 C:WHERE D:DESC
- 4A:COUNT(商品名) B:COUNT(商品名)>=2 C:ORDER BY D:ASC
正解
2. A:COUNT(*) B:COUNT(*)>=2 C:ORDER BY D:DESC
詳しい解説を見る解説を閉じる
解説
A:選択列に「販売件数」を出すには集計関数 COUNT(*) を用いる。B:「2件以上」は >=2 と表現するのが直接的かつ正確(>1 でも結果は同じだが、設問の意図に沿った表現は >=2)。C:GROUP BY 後の最終整列には ORDER BY を用いる(WHERE は集約前の行フィルタ)。D:「降順」は DESC、昇順は ASC。これらを満たすのはイ。 ア:「>2」では3件以上の意味になり「2件以上」と一致しない。 ウ:「>1」は2件以上と等価だが、整列に WHERE は使えないので不適。 エ:「ASC」は昇順で降順という設問条件に反する。(出典: 一般社団法人 中小企業診断協会 平成21年度 中小企業診断士1次試験 経営情報システム 第10問)
中小企業診断士トップ
一問一答・予想問題・まとめノート