SQLの高度な機能の一つである「相関サブクエリ」は、単純なSQL文では解決しきれないような複雑なデータの抽出や分析に大変有用です。特に、行に対するフィルタリングでその真価を発揮します。本記事では、相関サブクエリを使って行を効率よくフィルタリングする方法を具体的なデータテーブルとコード例で解説します。
目次
相関サブクエリとは
相関サブクエリは、外部のクエリと内部のサブクエリが相互に関連して動作する形式のSQLクエリです。通常のサブクエリが独立して一度だけ実行されるのに対し、相関サブクエリは外部のクエリの各行ごとに評価・実行されます。
基本的な構文
SELECT column1, column2
FROM table1
WHERE column1 = (SELECT column1 FROM table2 WHERE table1.column2 = table2.column2);
相関サブクエリでの行のフィルタリング
相関サブクエリは、外部のクエリに対して、内部のサブクエリが各行ごとに評価されることで行をフィルタリングします。
使用ケース
具体例1: 商品の平均価格より高い商品を抽出する
データテーブル: Products
ProductID | ProductName | Price |
---|---|---|
1 | Apple | 100 |
2 | Banana | 50 |
3 | Cherry | 200 |
SELECT ProductName, Price
FROM Products p1
WHERE Price > (SELECT AVG(Price) FROM Products p2 WHERE p1.ProductID = p2.ProductID);
まとめ
相関サブクエリは、複雑なデータ抽出や分析において非常に強力なツールです。この記事では、その基本的な概念と行のフィルタリングに焦点を当てて解説しました。SQLの中級者以上の方には特にオススメの手法であり、効率的なデータ操作を行いたい方には欠かせないスキルと言えるでしょう。
created by Rinker
¥4,554
(2024/11/22 10:55:01時点 Amazon調べ-詳細)
コメント