Equivalent de LISTAGG dans Vertica Bonjour à tous! J'essaie d'agréger toutes les valeurs de champ d'un groupe particulier dans un champ. Par exemple, ma table d'entrée ressemble à: -LISTAGG in vertica
FIELD1 GROUP1
A 1
A 2
B 1
B 2
C 1
C 3
3 null
et ma sortie devrait ressembler à: -
1 A,B,C
2 A,B
3 C
je peux en arriver sur Oracle en utilisant la fonction suivante
SELECT GROUP1, LISTAGG(FIELD1, ',') WITHIN GROUP (ORDER BY FIELD1) AS GROUPED_FIELD
FROM <INPUT_TABLE>
GROUP BY GROUP1;
Y a-t-il un moyen de le faire dans Vertica? Toute aide serait appréciée !!
Merci pour votre réponse. J'ai essayé de créer un UDF avec la commande ci-dessous. CREATE LIBRARY AggregateFunctionsConcatenate AS '/opt/vertica/sdk/examples/AggregateFunctions/Concatenate.so'; CREATE AGGREGATE FUNCTION agg_group_concat EN LANGAGE 'C++' NAME 'ConcatenateFactory'LIBRARY AggregateFunctionsConcatenate; mais obtenir ci-dessous Erreur: [Code: 4746, État SQL: 42V13] [Vertica] [VJDBC] (4746) ROLLBACK: La fonction de configuration "ConcatenateFactory" a échoué undefined symbole: getConcatenateFactory –
désolé Mon mauvais, je donnais une usine incorrecte nom –
obtenant actuellement: [Code: 4746, État SQL: 42V13] [Vertica] [VJDBC] (4746) ROLLBACK: Configuration de la fonction "agg_group_concat" échouée [Vertica] [VJDBC] Détail: [Type d'usine incompatible] –