本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

令和4年度 秋期 応用情報技術者試験問題と解説

問28

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

〔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 │  S5  │ 2,000 │
├────┼───┼────┼─────┼────┤
│ J010 │  J │ 1,300 │  S6  │ 1,000 │
└────┴───┴────┴─────┴────┘

ア 1  イ 2  ウ 3  エ 4


正解


解説

DISTINCT は、重複を削除するための句である。
AVG() 関数は平均を求める関数である。
これらを踏まえると、

SELECT DISTINCT 仕入先コード FROM 商品
  WHERE (販売単価 - 仕入単価) >
      (SELECT AVG (販売単価 - 仕入単価) FROM 商品)
は、販売単価 - 仕入単価“商品”表の販売単価 - 仕入単価の平均よりも大きい仕入先コードを“商品”表から重複なく取り出す。
という意味になる。

10個のレコードの販売単価-仕入単価の平均
(200+200+100+900+400+200+300+500+500+300)÷10
= 3600 ÷ 10 = 360
この値より大きい販売単価 - 仕入単価は、商品コードがD004, E005, H008, I009の4つであり、それぞれの仕入先コードは S1, S1, S4, S5だから、重複なく得られる仕入先コード数は3つである。

問27 目次 問29