見出し画像

SQL 複数フィールド(セル)を一つにまとめる

■ BigQuery使わんと・・・

とある製品を導入しているのだが、BigQueryを使わなければならず、
初めましてBigQuery!ということで、時間が掛かってしまった。。。

■やりたいこと

上記のように、商品番号の一部一致があった場合、商品規格をまとめたい
①商品番号の一部を削除し、共通部分のみにする
②商品規格を1つのフィールドに記載する(今回はカンマ区切り)
⇒今回は2番目の内容

■GROUP_CONCATは使えないよ

参考:リファレンス
https://dev.mysql.com/doc/refman/5.6/ja/group-by-functions.html#function_group-concat

MYSQLではGROUP_CONCATで上記のようにできる。
BigQueryでは標準 SQL とレガシー SQL の 2 つの SQL 言語をサポートしているのだけど、GROUP_CONCATは使えない。

■STRING_AGGで解決

参考:リファレンス
https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#string_agg

ということで、解決した。
解説というか実際のクエリ部分も書こうかと思ったのだが、
STRING_AGGにたどり着くのに一番時間が掛かったから、
これで似たことを実装したい人の手助けになるかな・・?
なれば幸い!

この記事が参加している募集

#仕事について話そう

110,122件

この記事が気に入ったらサポートをしてみませんか?