経緯
キーが同じだけど、valueが違う値をキー毎に取得したい
例)
ID | Key | value |
1 | AB_12345 | あ |
2 | AB_12345 | い |
3 | AB_12345 | う |
4 | AB_12346 | か |
この場合、
AB_12345,あいう
AB_12345,か
みたいな形で、IDをグループ化して取りたい。
とにかく、for文でくるくる回したくない。。。
解決策
string_aggを使い、「,」区切りでまとめて取得することで解決
select
key
string_agg(value, ',') as values
from
test_table
GROUP by techtouch_guide_uuid
ちなみに、valueの値が文字列でない場合、castすることで対応できる
string_agg(cast(value as VARCHAR), ',') as values