名前を収集するために使用array_agg
すると、名前をカンマで区切って取得しますが、null
値がある場合、その null も集計内の名前として取得されます。例えば :
SELECT g.id,
array_agg(CASE WHEN g.canonical = 'Y' THEN g.users ELSE NULL END) canonical_users,
array_agg(CASE WHEN g.canonical = 'N' THEN g.users ELSE NULL END) non_canonical_users
FROM groups g
GROUP BY g.id;
,Larry,Phil
ただの代わりに返されますLarry,Phil
(私の9.1.2では、表示されますNULL,Larry,Phil
)。
代わりに、 を使用するstring_agg()
と、名前のみが表示されます (空のコンマやヌルなし)。
問題はPostgres 8.4
、サーバーにインストールしたのに、string_agg()
そこで動作しないことです。array_agg を string_agg() のように機能させる方法はありますか?