DB

BigQueryで区切り文字を使って文字列結合する方法

BigQueryで区切り文字を使って文字列結合する方法

BigQueryで区切り文字を使って文字列結合するしたい

複数のデータをテーブルで管理することができるBigQuery。

1行1行にデータが保存されているが、ときには全ての行のデータを1つに結合して使いたい場合もあるだろう。

そこで今回はBigQueryで区切り文字を使って文字列結合する方法について紹介する。

この記事を書いている人


システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。最近GCPを色々と習得中。

記事を読むメリット

BigQueryで区切り文字を使って文字列結合する方法がわかる


BigQueryで区切り文字を使って文字列結合する方法

BigQueryで区切り文字を使って文字列結合するには string_agg() の関数を使用する。


使い方を説明する前に、まず使用するデータを用意する。

(select "a" as text)
union all
(select "b" as text)
union all
(select "c" as text)
union all
(select "d" as text)
union all
(select "e" as text)

結果

text
a
b
c
d
e


textカラムに a から e まで5行のデータが存在する。

これらの文字列データを結合するのに string_agg() を使う。

select
string_agg( text, '_') as concat_text
from
(
  (select "a" as text)
  union all
  (select "b" as text)
  union all
  (select "c" as text)
  union all
  (select "d" as text)
  union all
  (select "e" as text)
)

すると文字列が区切り文字 _ で結合された結果が得られる。

concat_text
a_b_c_d_e


string_agg() の第2引数を変更すれば区切り文字を変更できる。

string_agg() の中で order by で順番を指定すると結合する順番を決めることができる。

select
string_agg( text, ':' order by text desc) as concat_text
from
(
  (select "a" as text)
  union all
  (select "b" as text)
  union all
  (select "c" as text)
  union all
  (select "d" as text)
  union all
  (select "e" as text)
)

結果

concat_text
e:d:c:b:a



役立つケース

これ、どんなときに役立つの?
例えば複数の文字列をパイプ | で結合してOR条件のようなテキストを作ったり、空白 で結合して検索文字列のようなテキストを作ったりできますね。



まとめ

今回はBigQueryで区切り文字を使って文字列結合する方法を紹介した。

結合には string_agg(テキストカラム, "区切り文字") とすると任意の区切り文字を使って文字列のカラムを結合できる。


他にもBigQueryに関する記事もあるので、もし気になったら参考にして欲しい。

ITipsと同じようなブログを作る方法

ブログに興味がありますか?

もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

ランキング参加中

にほんブログ村 IT技術ブログへ

他にもブログやSNSで紹介してくれると励みになります。

はてブのコメントで酷評されると泣きます(´;ω;`)

-DB
-

© 2024 ITips