bigqueryのstandardSQLでパーティションされたテーブルがある場合、

対象日付のテーブルのみを検索対象にする場合のコード例は以下。(クエリ課金の節約用)

#standardSQL

WITH
prm AS 
(
  ## パラメータ
  SELECT
    cast(format_date('%Y-%m-%d 00:00:00', date_sub( '2018-09-30', interval 1 day)) as datetime) AS from_ymdt
    , cast(format_date('%Y-%m-%d 23:59:59', date_sub( '2018-09-30', interval 1 day)) as datetime) AS to_ymdt
)
SELECT
  DATE(date) AS YMD
  , id
  , COUNT(*) AS cnt
FROM
  `testDB.test_*`, prm
WHERE
  _table_suffix = '20180930'  #ここで20180930のテーブルのみに絞っている
AND
  create_time >= from_ymdt
AND
  create_time <= to_ymdt
GROUP BY
  YMD
  , id
;
おすすめの記事