0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

BigQueryで連続した月次の日付テーブルを作成する方法

Posted at

背景

 SQLを書いていると「月次で集計したいけど、元となる日付のテーブル日付のテーブルがない!」といったケースに当たることは多いかと思われます。ネットで調べると「任意の巨大テーブルを使って...」と言った記事もあったのですが、今回関数だけで作る方法を見つけたのでメモ的に残しておこうと思います。

作りたいもの

 以下のような日付が月次で並んでいるもの
image.png

SQL

WITH
  month AS (
  SELECT
    d
  FROM
    UNNEST(GENERATE_DATE_ARRAY(DATE_ADD(DATE_TRUNC(CURRENT_DATE, month), INTERVAL -5 MONTH),DATE_TRUNC(CURRENT_DATE, month), INTERVAL 1 MONTH)) AS d)
SELECT
  *
FROM
  month

感想

 何かしらテーブルをもとに作成する方法は気持ち悪さがあったので、関数のみで作成することができ気持ち悪さを除くことができました。UNNESTは使うことはあまりないですがこういうケースで便利ですね!

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?