BigQueryで2つのテーブルを結合する

BigQueryで2つのテーブルを結合します

# テーブル

item.item_table1

id item prime
1 A 100
2 B 200
3 C 300

item.item_table2

id item prime
1 A 100
2 B 200
4 D 400

item.item_table3

id class
1 A_class
2 B_class

# 縦に結合

-- 結果を結合したものを、重複ありで返します
SELECT
    * 
FROM
  item.item_table1 
UNION ALL 
SELECT
    * 
FROM
  item.item_table2;
id item prime
1 A 100
2 B 200
3 C 300
1 A 100
2 B 200
4 D 400
-- 結果を結合したものを、重複なしで返します
SELECT
    * 
FROM
  item.item_table1 
UNION DISTINCT 
SELECT
    * 
FROM
  item.item_table2
ORDER BY
  user_id
  , item
  , price;
id item prime
1 A 100
2 B 200
3 C 300
4 D 400

# 条件付きの結合(横)

-- idが一致するものを横に結合
-- t2にないidがt1にある場合は除去される
SELECT
    t1.*,
    t3.class
FROM
  item.item_table1 AS t1
INNER JOIN
  item.item_table3 AS t3
ON 
    t1.id = t3.id
id item prime class
1 A 100 A_class
2 B 200 B_class

# 条件付きの結合(横&null補正)

-- idが一致するものを横に結合
-- t2にないidがある場合は、null値で補完
SELECT
    t1.*,
    t3.class
FROM
  item.item_table1 AS t1
LEFT JOIN
  item.item_table3 AS t3
ON 
    t1.id = t3.id
id item prime class
1 A 100 A_class
2 B 200 B_class
3 C 300 null

# 参考サイト

【BigQuery】集合演算子(UNION…)まとめ (opens new window)

ColabratryでSeleniumを復活させる(2023年1月24日)

ColabratryでSeleniumを復活させる(2023年1月24日)

ColabratryでSeleniumを復活させる(2023年1月24日)

BigQueryでプローブデータの来訪順を考慮した滞在スポットごとにIDを振る

BigQueryでプローブデータの来訪順を考慮した滞在スポットごとにIDを振る

igQueryでプローブデータの来訪順を考慮した滞在スポットごとにIDを振ります.

注意:かなりゴリ押しでIDを振りました。他に良い手法があればご教授ください。