サインアップ

ログイン

パスワードをお忘れですか

パスワードを忘れましたか? メールアドレスを入力してください。 リンクを受け取り、メールで新しいパスワードを作成します。

質問するにはログインする必要があります

Bigqueryで配列を作成する(ARRAYとSTRUCT)

皆さんこんにちは

本日は少しARRAYとSTRUCTについて考えてみます。
以前UDFでCASE文や変換をやってみましたが今回はJOINするにしてもJOINするテーブルが無い
場合等があるかと思います。
間に合わせでJOIN用のテーブルを作成する方法を考えてみます。

【例題】

日本の祝日テーブルを配列で作成する。
Googleスプレッドシートからのインポートはしない

【実践】

これらもワンセットで覚えておくと楽です

WITH NANIKA AS (
  SELECT * FROM UNNEST(
    ARRAY<STRUCT<DATES DATE,HOLIDAY_NAME STRING>>
    [
      STRUCT( “2021-01-01”,“元日”),
      STRUCT( “2021-01-11”,“成人の日”),
      STRUCT( “2021-02-11”,“建国記念の日”),
      STRUCT( “2021-02-23”,“天皇誕生日”)
    ]
  )
)

SELECT * FROM NANIKA

メリットとして

配列でテーブルを作成する便利な点はデータ型、カラム数を自在に定義することができるところです。
また[]内のSTRUCTはExcelのような表計算ソフトで&を使って関数化すると簡単に作成することが可能です。

勿論この配列を作成する場合、NULLを入れる事も可能ですが
一部のデータ型ではNULLが許容されないケースがあります。(BOOL型等)

簡易的なテーブルを作成するには適してますが数が多くなると非常に手間がかかることもあります。
次回はGoogleスプレッドシートからインポートする方法について確認してきます。

関連記事

コメントを残す