日々地道に成長

思いついたことを書いていきます。

【BigQuery】SQLでテーブルの差分確認

お疲れ様です。コーヒーです。

 

今回はBigQueryでのテーブルの差分確認方法についてです。

データを整理しているときやデータのリカバリ時に、二つのテーブルの差分を確認する必要が出てくると思います。

そんな時に今回紹介する方法を利用すればすぐに確認できると思います。

クエリ内容

以下のクエリはお互いのテーブルの差分カラムを抽出するものになります!

お互いの差分カラムをすべて表示するものになります。

(
  SELECT date,count(*) FROM table_a
    EXCEPT DISTINCT
  SELECT date,count(*) FROM table_b
)
UNION ALL

   SELECT date,count(*) FROM table_b
    EXCEPT DISTINCT
   SELECT date,count(*) FROM table_a
)

 

以下のクエリはtable_aとtable_bを日別で件数比較しているものになります。

応用するとこのような使い方もできます!

with a as(
(
  SELECT date,count(*) FROM table_a group by date
    EXCEPT DISTINCT
  SELECT date,count(*) FROM table_b group by date
)
UNION ALL

   SELECT date,count(*) FROM table_b group by date
    EXCEPT DISTINCT
   SELECT date,count(*) FROM table_a group by date
)
)
select * from a order by 1

以上が差分確認クエリの作成方法がです。

テーブルの比較に使える手法なのでぜひ覚えておいてください!

最後まで読んでいただきありがとうございました!!