応用情報技術者令和3年秋期 午前問29

午前問29

"部門別売上別"表から,部門コードごと,期ごとの売上を得るSQL文はどれか。
29.gif/image-size:515×190

分類

テクノロジ系 » データベース » データ操作

正解

解説

まず、どのSQL文にも共通している2つのSELECT文から得られる中間表を考えます。それぞれ以下の結果となります。
29_1.gif/image-size:337×308
2つの中間表をINTERSECT(共通)、UNION(和)、CROSS JOIN(直積)、INNER JOIN(内部結合)を行うとそれぞれ以下のようになります。
  • INTERSECT(共通)は2つの関係に共通集合を得る演算です。共通する行はないので"結果なし"となります。
  • UNION(和)は2つの関係の和集合を得る演算です。1つ目の関係に2つ目の関係が足される感じになるので、設問の問合せ結果と同じになります。
    29ii.gif/image-size:541×176
  • CROSS JOIN(直積)は、2つの関係に存在する行のすべての組み合わせを得る演算です。どちらの関係も3行ずつあるので、結果表は「3×3=9行」で構成される表となるので誤りです。
    29uu.gif/image-size:445×251
  • INNER JOIN(内部結合)は、2つの関係を共通する属性で結び付ける演算です。結合相手が存在する行だけが残ります。2つの関係を部門コードで結合すると、結果表は以下のようになるので誤りです。
    29ee.gif/image-size:445×101
© 2010-2022 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop