集合演算子

Oracle SQL 入門

Sara Billen

Curriculum Manager

集合演算子とは?

$$

集合演算子は、2つ以上のSELECTクエリの出力を1つにまとめます。

$$

  • 結合句はテーブルを結合
    • 列指向
  • 集合演算子はクエリを結合
    • 行指向
Oracle SQL 入門

集合演算子の種類

Union

Union operator

重複なしですべての行

Union All

Union all operator

重複を含むすべての行

Intersect

Intersect operator

両方のクエリで出力される行

Minus

Minus operator

1つ目にのみある重複除去済みの行

Oracle SQL 入門

Union

重複なしですべての行

顧客に関連するすべての都市は?

SELECT City FROM Customer
UNION
SELECT BillingCity FROM Invoice
| City           |
|----------------|
| Lyon           |
| Fort Worth     |
| Vienne         |
| Brussels       |
| Orlando        |
| Copenhagen     |
| Oslo           |
| Rio de Janeiro |
| Boston         |
| ...            |
Oracle SQL 入門

Union all

重複を含むすべての行

顧客に関連するすべての都市と、その出現頻度は?

SELECT City from Customer
UNION ALL
SELECT BillingCity from Invoice
| City          |
|---------------|
| Oslo          |
| Prague        |
| Prague        |
| Vienee        |
| Brussels      |
| Copenhagen    |
| Mountain View |
| Mountain View |
| Mountain View |
| ...           |
Oracle SQL 入門

Intersect

両方のクエリで出力される行

Miles Davis の曲で、プレイリストに含まれるものは?

(SELECT TrackId from PlaylistTrack)
INTERSECT
(SELECT TrackId from Track
WHERE Composer = 'Miles Davis')
| TrackId |
|---------|
| 612     |
| 600     |
| 614     |
| 604     |
| 605     |
| 598     |
| 617     |
Oracle SQL 入門

Minus

1つ目のクエリにあり、2つ目にない重複除去済みの行

作曲していないアーティストはだれ?

(SELECT Name FROM Artist)
MINUS
(SELECT Composer FROM Track)
ORDER BY 1 DESC
| Name                     |
|--------------------------|
| Zeca Pagodinho           |
| Youssou N'Dour           |
| Yo-Yo Ma                 |
| Yehudi Menuhin           |
| Xis                      |
| Wilhelm Kempff           |
| Whitesnake               |
| Vinícius E Qurteto Em Cy |
| Vinícius E Odette Lara   |
| ...                      |                                                                       |
Oracle SQL 入門

演習に進みましょう!

Oracle SQL 入門

Preparing Video For Download...