Note
key=value
の形にして結合したい。 例えばURLのパラメータなどが
keyと
value`でテーブル上で分かれている場合に一つのURLにSQL上で結合する
id | key | value |
---|---|---|
1 | source | social |
1 | medium | |
1 | campaign | story |
このようなテーブルを以下のような形に修正する
id | tags |
---|---|
1 | source=social&medium=instagram&campaign=story |
手順
1. key
とsource
をkey=source
の形に変換する
with table as (
select id, concat(key, '=', value) as data from raw
)
以下のようなテーブルができる
id | data |
---|---|
1 | source=social |
1 | medium=instagram |
1 | campaign=story |
2. key=source
を&
で結合する
select id, string_agg(data, '&') from table group by id
以下のようなテーブルができる
id | tags |
---|---|
1 | source=social&medium=instagram&campaign=story |
※ concat
は文字列結合
※ string_agg
はカラムの結合