BigQueryで区切り文字を使って文字列結合するしたい。
複数のデータをテーブルで管理することができるBigQuery。
1行1行にデータが保存されているが、ときには全ての行のデータを1つに結合して使いたい場合もあるだろう。
そこで今回はBigQueryで区切り文字を使って文字列結合する方法について紹介する。
この記事を書いている人
記事を読むメリット
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)
結果
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) )
すると文字列が区切り文字 _
で結合された結果が得られる。
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) )
結果
e:d:c:b:a
役立つケース
|
で結合してOR条件のようなテキストを作ったり、空白
で結合して検索文字列のようなテキストを作ったりできますね。まとめ
今回はBigQueryで区切り文字を使って文字列結合する方法を紹介した。
結合には string_agg(テキストカラム, "区切り文字")
とすると任意の区切り文字を使って文字列のカラムを結合できる。
他にもBigQueryに関する記事もあるので、もし気になったら参考にして欲しい。