徒然なるままにデータサイエンス

データアナリストの実務で得た知識を書いていきます

【BigQuery】#2 ID毎(会員別)にfacilityの組み合わせを作成する【組み合わせ分析】

ID毎にfacilityの組み合わせを作成する

会員がどのfacilityをどのような組み合わせで使っているかを調べるために、ID毎にfacilityの組み合わせを作成します。
使うコードは下記です。

SELECT 
  ID,
  STRING_AGG(DISTINCT facility ORDER BY facility ASC) as set_facility
FROM 
  `table_name`
GROUP BY 
  ID
ORDER BY
  ID ASC
STRING_AGG (カラム名, 区切り文字) WITHIN GROUP (ORDER BY ソート条件)

STRING_AGGで文字列式の値の間に区切り記号を挿入して、文字列同士を連結させることができます。
今回はデフォルト値の","区切りを使用するため、区切り文字の指定は省略しています。
重要な点としては、今回はID毎にfacilityの組み合わせを作りたいため、ID列をGROUP BYに指定することです。

BigQueryでのクエリ結果

それではBigQuery上で実際にクエリを実行します。

クエリ実行結果

f:id:funi_ds:20220310082250p:plain

ID毎にfacilityの組み合わせを作成することができました!
次回からはfacilityの組み合わせごとのID数(会員数)をカウントしていきます。