👓

BQのWHERE句でパーティション指定

2021/07/15に公開

概要

bigqueryのパーティション指定where句についてのメモ

クエリ

パーティション指定

bigqueryのパーティションは日付しかない。
絞り込み条件は「_PARTITIONTIME」、「_PARTITIONDATE」のどちらか。

  • _PARTITIONTIME:日付ベースのタイムスタンプ
  • _PARTITIONDATE:日付表記
select
    カラムA
   ,_PARTITIONTIME as pt
from
    テーブル名
where
    _PARTITIONTIME < '2021-02-01'
    and _PARTITIONTIME > '2021-01-01'
select
    カラムA
   ,_PARTITIONTIME as pt
from
    テーブル名
where _PARTITIONTIME=timestamp("2021-01-15")

パーティション分割テーブルのクエリ詳細

https://cloud.google.com/bigquery/docs/querying-partitioned-tables?hl=ja

おまけ:WHERE句指定で全件抽出

あまり機会はないと思うが
WHERE句指定で全レコードを取得したい場合
以下のようにすれば可能

select
    カラムA
from
    テーブル名
where true

Discussion