INTERSECT 句
INTERSECT
句は、最初のクエリと二番目のクエリの両方からの結果となる行のみを返します。クエリは、カラムの数、順序、および型が一致する必要があります。 INTERSECT
の結果には重複行が含まれることがあります。
複数の INTERSECT
ステートメントは、括弧が指定されていない場合、左から右へ実行されます。 INTERSECT
演算子は、 UNION
や EXCEPT
句よりも優先度が高いです。
条件は、要件に基づいた任意の式である可能性があります。
例
こちらは、1から10の数字を3から8の数字と交差させる簡単な例です。
結果:
INTERSECT
は、共通のカラム(またはカラム)を持つ二つのテーブルがある場合に便利です。結果が同じカラムを含む限り、二つのクエリの結果を交差させることができます。たとえば、取引価格と取引量を含む数百万行の歴史的な暗号通貨データがあるとします。
次に、保有している暗号通貨のリストと、そのコイン数を含む holdings
というテーブルがあるとします。
INTERSECT
を使って 「$100以上で取引されたコインはどれですか?」 という質問に答えることができます。
結果:
これは、ある時点で Bitcoin と Ethereum が 100 を超えて取引されたことはありません。
INTERSECT DISTINCT
以前のクエリでは、$100を超えて取引された複数の Bitcoin と Ethereum の保有がありました。重複した行を削除することができれば良いでしょう(すでに知っている情報を繰り返すだけなので)。重複行を結果から排除するには、 INTERSECT
に DISTINCT
を追加できます。
結果:
参照