bigquery except distinct

/

bigquery except distinct集合演算子の使い方

タグ except distinct


概要

  • UNION ALL, INTERSECT DISTINCTなどの集合演算子の一つにEXCEPT DISTINCTというものがある
  • 2つのテーブルのレコードで集合と考えてsubstructionする操作

pythonでのイメージ

assert {(0, "a"), (1, "b"), (2, "c")} - {(0, "a"), (2, "c")} == {(1, "b")}

具体例

SELECT
  name,
  email
FROM UNNEST([
  STRUCT("山田 太郎" as name, "taro.yamada@example.com" as email),
  ("佐藤 花子", "hanako.sato@example.com"),
  ("鈴木 一郎", "ichiro.suzuki@example.com"),
  ("田中 二郎", "jiro.tanaka@example.com"),
  ("高橋 三郎", "saburo.takahashi@example.com")
])
EXCEPT DISTINCT
SELECT
  name,
  email
FROM UNNEST([
  STRUCT("山田 太郎" as name, "taro.yamada@example.com" as email),
  ("伊藤 由美", "yumi.itou@example.com")
])
name email
佐藤 花子 hanako.sato@example.com
鈴木 一郎 ichiro.suzuki@example.com
田中 二郎 jiro.tanaka@example.com
高橋 三郎 saburo.takahashi@example.com

参考