メインコンテンツへスキップ
INTERSECT 句は、最初のクエリと 2 番目のクエリの両方で得られる行のみを返します。両方のクエリで、カラム数、順序、型が一致している必要があります。INTERSECT の結果には、重複する行が含まれることがあります。 複数の INTERSECT ステートメントがある場合、括弧が指定されていなければ左から右に実行されます。INTERSECT 演算子は、UNION 句および EXCEPT 句よりも優先順位が高くなります。
条件には、要件に応じた任意の式を使用できます。

以下は、1 から 10 までの数値と 3 から 8 までの数値の積集合をとる簡単な例です。
Query
Response
2つのテーブルに共通のカラム (または複数のカラム) がある場合、INTERSECT は便利です。結果に同じカラムが含まれていれば、2つのクエリ結果の積集合を求めることができます。たとえば、取引価格と出来高を含む暗号通貨の過去データが数百万行あるとします。
Query
Response
ここで、保有している暗号通貨の一覧と各コインの数量を含む holdings という名前のテーブルがあるとします。
Query
INTERSECT を使うと、“$100 を超える価格で取引されたことがある、保有中のコインはどれか?” といった問いに答えられます。
Query
Response
これは、ある時点では Bitcoin と Ethereum は 100 ドルを超えて取引されていた一方で、DOGEFI と Bitcoin Diamond は一度も 100 ドルを超えて取引されたことがないことを意味します (少なくとも、この例で使用しているデータでは) 。

INTERSECT DISTINCT

前のクエリでは、$100 を超えて取引された Bitcoin と Ethereum の保有銘柄が複数ありました。重複した行は、すでにわかっている内容を繰り返しているだけなので、取り除くとよいでしょう。結果から重複行を除外するには、INTERSECTDISTINCT を追加できます。
Query
Response
関連項目
最終更新日 2026年6月19日