平成24年 春期 システム監査技術者 午前II 問17

“商品”表に対して、次のSQL文を実行して得られる仕入先数は幾つか。

 SELECT DISTINCT 仕入先コード FROM 商品
    WHERE (販売単価 - 仕入単価) >
       (SELECT AVG (販売単価 - 仕入単価) FROM 商品)

商品
商品コード 商品名 販売単価 仕入先コード 仕入単価
A001 A 1,000 S1 800
B002 B 2,500 S2 2,300
C003 C 1,500 S2 1,400
D004 D 2,500 S1 1,600
E005 E 2,000 S1 1,600
F006 F 3,000 S3 2,800
G007 G 2,500 S3 2,200
H008 H 2,500 S4 2,000
I009 I 2,500 D5 2,000
J010 J 1,300 S6 1,000

 ア  1  イ  2  ウ  3  エ  4


答え ウ


解説
SQL文の意味は、“商品”表の全ての商品の(販売単価 - 仕入単価)の平均(AVG)よりも、(販売単価 - 仕入単価)の大きい商品の仕入先コードを重複なしで出力するというものです。
“商品”表の全ての商品の(販売単価 - 仕入単価)の平均を求めると、360になります。
(販売単価 - 仕入単価)がこの340より大きい商品は、D004、E005、H008、I009で仕入先はD004とE004がS1、H008がS4、I009がS5なので、出力される仕入先数は3(ウ)になります。


キーワード
・SQL文

キーワードの解説
  • SQL文
    SQL文で出てくる句について説明します。
    • SELECT
      出力するデータを指定します。
    • DISTINCT
      同じ内容の(重複した)データを除きます。
    • FROM
      操作するデータを指定します。
    • AS
      操作するデータの名前を変えます。
    • WHERE
      操作する条件を指定します。
    • GROUP BY
      同じ内容のデータをまとめます。
    • HAVING
      GROUP BYで抽出条件を指定する。
    • COUNT
      個数を数えます。
    • SUM
      集計(加算)します。
    • AVG
      平均値を計算します。

もっと、「DISTINCT」について調べてみよう。

戻る 一覧へ 次へ