RedshiftでフィールドをGROUP BYおよびCONCATENATEする方法(例:テーブルがある場合)
ID COMPANY_ID EMPLOYEE
1 1 Anna
2 1 Bill
3 2 Carol
4 2 Dave
どうすればこのような結果を得ることができますか
COMPANY_ID EMPLOYEE
1 Anna, Bill
2 Carol, Dave
PostgreSQLにはいくつかの解決策があるただし、これらの回答に記載されている機能はいずれも現在 Redshift では利用できません。
ベストアンサー1
まあ、少し遅れましたが、この機能に関するお知らせ2015 年 8 月 3 日に発生しました。Redshift は LISTAGG ウィンドウ関数を導入し、現在ではそれが可能になっています。ここに、問題に対する簡単な解決策を示します。役に立つかどうかはわかりませんが、みんなに知ってもらえるようにここに掲載します。
SELECT COMPANY_ID,
LISTAGG(EMPLOYEE,', ')
WITHIN GROUP (ORDER BY EMPLOYEE)
OVER (PARTITION BY COMPANY_ID) AS EMPLOYEE
FROM YOUR_TABLE
ORDER BY COMPANY_ID
この機能を見てうれしく思いました。Redshift が追加し続けている新機能をすべて取り入れて、当社の本番スクリプトの多くがアップグレードされる予定です。