Jeśli używam array_agg
do zbierania nazw, moje imiona są oddzielane przecinkami, ale w przypadku, gdy istnieje null
wartość, ta wartość null jest również traktowana jako nazwa w agregacji. Na przykład :
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;
zwraca ,Larry,Phil
zamiast just Larry,Phil
(w moim 9.1.2 pokazuje NULL,Larry,Phil
). jak na tych skrzypcach
Zamiast tego, jeśli używam string_agg()
, pokazuje mi tylko nazwy (bez pustych przecinków i null), jak tutaj
Problem w tym, że mam Postgres 8.4
zainstalowany na serwerze i string_agg()
tam nie działa. Czy istnieje sposób, aby funkcja array_agg działała podobnie do string_agg ()?