SQLアタマアカデミー
第9回 SQLでループ! 相関サブクエリの使い方~切れ過ぎるナイフにご用心~ (1)サブクエリ
はじめに
SQLを使い始めたとき,
そういう
そのための中心的な道具がサブクエリ,
結論から書いてしまうと,
- 読者対象
- SQLでループを記述したい人
- 過去,
SQLを勉強してサブクエリから相関サブクエリへ進んだ時点で敗れ去った人
- 稼働環境
- すべてのリレーショナルデータベース
それではさっそく,
図1 解説に使用する社員テーブル
Employees
emp_ | name | dept | sex | age |
001 | 橋本 | 営業 | 男 | 37 |
002 | 山下 | 営業 | 男 | 24 |
003 | 石川 | 営業 | 男 | 40 |
004 | 中島 | 総務 | 男 | 35 |
005 | 前田 | 総務 | 男 | 26 |
006 | 藤田 | 総務 | 女 | 50 |
007 | 小川 | 開発 | 女 | 29 |
008 | 長谷川 | 開発 | 女 | 29 |
サブクエリ
出発点とするのは,
リスト1 サブクエリ
SELECT *
FROM Employees E1
WHERE age = (SELECT MAX(age)
FROM Employees E2);
このコードで最初に実行されるパートは,
最初に実行されるクエリ
SELECT MAX(age)
FROM Employees E2;
すると,
SELECT *
FROM Employees E1
WHERE age = 50;
最終的な結果は,
図2 リスト1の実行結果
emp_id name dept sex age ------- ------ ------ ------ ----- 006 藤田 総務 女 50
バックナンバー
SQLアタマアカデミー
- 最終回 OLAP関数で強力な統計処理を実現!―手続き型から理解するSQL (5)集合指向と手続き型
- 最終回 OLAP関数で強力な統計処理を実現!―手続き型から理解するSQL (4)OLAP関数と集約関数を組み合わせる
- 最終回 OLAP関数で強力な統計処理を実現!―手続き型から理解するSQL (3)OLAP専用関数
- 最終回 OLAP関数で強力な統計処理を実現!―手続き型から理解するSQL (2)OLAP関数の基本構文
- 最終回 OLAP関数で強力な統計処理を実現!―手続き型から理解するSQL (1)OLAP関数とは何か
- 第10回 結合大全 (5)非等値結合
- 第10回 結合大全 (4)自己結合
- 第10回 結合大全 (3)外部結合
- 第10回 結合大全 (2)内部結合
- 第10回 結合大全 (1)クロス結合