データ操作(全64問中8問目)

"部門別売上別"表から,部門コードごと,期ごとの売上を得るSQL文はどれか。
29.gif

出典:令和3年秋期 問29

  • 29a.gif
  • 29i.gif
  • 29u.gif
  • 29e.gif
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データ操作
解説
まず、どのSQL文にも共通している2つのSELECT文から得られる中間表を考えます。それぞれ以下の結果となります。
29_1.gif
2つの中間表をINTERSECT(共通)、UNION(和)、CROSS JOIN(直積)、INNER JOIN(内部結合)を行うとそれぞれ以下のようになります。
  • INTERSECT(共通)は2つの関係に共通集合を得る演算です。共通する行はないので"結果なし"となります。
  • UNION(和)は2つの関係の和集合を得る演算です。1つ目の関係に2つ目の関係が足される感じになるので、設問の問合せ結果と同じになります。
    29ii.gif
  • CROSS JOIN(直積)は、2つの関係に存在する行のすべての組み合わせを得る演算です。どちらの関係も3行ずつあるので、結果表は「3×3=9行」で構成される表となるので誤りです。
    29uu.gif
  • INNER JOIN(内部結合)は、2つの関係を共通する属性で結び付ける演算です。結合相手が存在する行だけが残ります。2つの関係を部門コードで結合すると、結果表は以下のようになるので誤りです。
    29ee.gif

Pagetop