Yappli Tech Blog

株式会社ヤプリの開発メンバーによるブログです。最新の技術情報からチーム・働き方に関するテーマまで、日々の熱い想いを持って発信していきます。

BigQueryのQUALIFY句でユニーク性を担保する【Sexy Tech for You #12】

データサイエンティストの阿部です。妻に誘われて俳句を始めました。『プレバト!!』でお馴染みの夏井いつき先生が評価してくれるおウチde俳句クラブに加入して楽しんでます。

さて、明日から使いたくなるデータハンドリング術を紹介する "Sexy Tech for You" の第12話を配信しました。最近ヤプリでは、手動運用するスプレッドシートをBigQueryに連携してマスタとして活用するケースが増えてきました。そんなとき、ユニーク性を担保するのに便利なQUALIFY句を紹介しました。

動画中に記載したクエリや補足事項を本ブログに掲載しますので、少しでも皆様のお役に立てたら幸いです。

Youtube

BigQuery クエリ

QUALIFY句例

WITH 

dat AS (
  SELECT "A" AS id, "部署1" AS group_name UNION ALL
  SELECT "B" AS id, "部署1" AS group_name UNION ALL
  SELECT "C" AS id, "部署1" AS group_name UNION ALL
  SELECT "D" AS id, "部署2" AS group_name UNION ALL
  SELECT "A" AS id, "部署2" AS group_name 
)

SELECT
  *
FROM
  dat
QUALIFY
  ROW_NUMBER()OVER(PARTITION BY id ORDER BY group_name) = 1

補足

ユニーク性を担保するために、従来は一度window関数でカラムを定義してからWHERE句で条件指定しなければいけなかったのが、QUALIFY句の登場によって、HAVING句と同じ要領で扱えるようになりました。QUALIFY句も当初はWHERE句と併用する必要があったと記憶していますが、その制約がなくなってより便利になりました。ますます快適になるBigQueryライフをみんなで楽しんで参りましょう。

以上、Moblie Tech for All のヤプリがお送りする Sexy Tech for You でした!次回またお会いしましょう。