BigQuery Notes

JOIN vs UNION

NOAA Weather dataset 구조

Unique key 찾기

-- 중복 usaf 찾기 (왜 단일키로 부족한지 확인)
WITH s AS (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY usaf ORDER BY wban) AS rn
  FROM `bigquery-public-data.noaa_gsod.stations`
)
SELECT * FROM s WHERE rn > 1 ORDER BY usaf, rn;

-- 조인용 복합키 예시
SELECT CONCAT(usaf, '-', wban) AS station_key, *
FROM `bigquery-public-data.noaa_gsod.stations`;

JOIN: 기본과 주의점

Basic JOINs (빨리 보는 표)

-- temps + station info enrich (N:1 의도)
WITH temps AS (SELECT * FROM `...temps_2020`),
     st AS (SELECT CONCAT(usaf, '-', wban) AS k, * FROM `...stations`)
SELECT t.*, s.state, s.latitude, s.longitude
FROM temps t
JOIN st s
  ON CONCAT(t.usaf, '-', t.wban) = s.k;