メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

LISTAGG ウィンドウ関数の例

次の例は、WINSALES テーブルを使用します。WINSALES テーブルの説明については、「ウィンドウ関数の例」を参照してください。

以下の例は、販売者 ID のリストを販売者 ID 順で返します。

Copy
select listagg(sellerid) within group (order by sellerid) over() from winsales; listagg ------------ 11122333344 ... ... 11122333344 11122333344   (11 rows)

以下の例は、購入者 B の販売者 ID のリストを日付順で返します。

Copy
select listagg(sellerid) within group (order by dateid) over () as seller from winsales where buyerid = 'b' ; seller --------- 3233 3233 3233 3233 (4 rows)

以下の例は、購入者 B について販売日付のカンマ区切りリストを返します。

Copy
select listagg(dateid,',') within group (order by sellerid desc,salesid asc) over () as dates from winsales where buyerid = 'b'; dates ------------------------------------------- 2003-08-02,2004-04-18,2004-04-18,2004-02-12 2003-08-02,2004-04-18,2004-04-18,2004-02-12 2003-08-02,2004-04-18,2004-04-18,2004-02-12 2003-08-02,2004-04-18,2004-04-18,2004-02-12 (4 rows)

以下の例は、各購入者 ID について販売 ID のカンマ区切りリストを返します。

Copy
select buyerid, listagg(salesid,',') within group (order by salesid) over (partition by buyerid) as sales_id from winsales order by buyerid; buyerid | sales_id -----------+------------------------ a |10005,40001,40005 a |10005,40001,40005 a |10005,40001,40005 b |20001,30001,30004,30003 b |20001,30001,30004,30003 b |20001,30001,30004,30003 b |20001,30001,30004,30003 c |10001,20002,30007,10006 c |10001,20002,30007,10006 c |10001,20002,30007,10006 c |10001,20002,30007,10006 (11 rows)