2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BigQueryのデータ分析で変数を使うと便利

Posted at

BigQueryを使ってユーザーの分析などをよくしているのですが、クエリを書く際に特定の日付やユーザーのidなどを扱うことはしばしばあると思います。
その際に、普段コードを書くときみたいに定数を使うことでクエリがスッキリするので紹介します。

DECLAREを使う

DECLAREを使うことで定数を定義できます。

簡単な例が以下です。

例1
DECLARE target_user_id INT64 DEFAULT 123;

SELECT * FROM users WHERE id = target_user_id;
例2
DECLARE target_user_name STRING DEFAULT 'qiitan';

SELECT * FROM users WHERE name = target_user_name;

このように、クエリ中でマジックナンバーになりがちな値に名前をつけることができるので、長いクエリになってくるとより重宝します。

また、INT64やSTRING以外も使えるので活用できると便利です。
私がよく使うのはARRAYです。
例が以下です。

例3
DECLARE target_tag_names ARRAY<STRING> DEFAULT ['Claude', 'ClaudeCode'];

SELECT *
FROM tags
WHERE name IN (
  SELECT * FROM UNNEST(target_tag_names)
);

このようにIN句もスッキリしとても良いです。

最後に

半分くらいは自己満足で使っている部分もありますが、普段書いているコードと同じように意図が伝わるようなクエリを書けるのは気持ちが良いです。
ぜひお試しいただけると幸いです。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?