L'un de mes agrégats postgres préférés est "liste", attribué à "Chris Rohlfs dans les idocs" selon les rares preuves que je peux trouver sur le web.Modifier l'agrégat "liste" postgresql pour supprimer les doublons
CREATE FUNCTION comma_cat (text, text)
RETURNS text AS
'SELECT CASE
WHEN $2 is null or $2 = '''' THEN $1
WHEN $1 is null or $1 = '''' THEN $2
ELSE $1 || '', '' || $2
END'
LANGUAGE sql;
CREATE AGGREGATE list (BASETYPE = text, SFUNC = comma_cat, STYPE = text, INITCOND = '');
Je trouve, parfois, que je voudrais éliminer les doublons. Un old mailing list thread suggère que cette approche ne peut pas faire le tri, ce qui pourrait être un deal-tueur pour la suppression de la duplication. Another post in the same thread suggère une fonction qui fait la même chose; peut-être que c'est plus modifiable à cet effet?
En attendant, je vais juste masser la sortie dans une autre langue. Mais ce serait cool si nous pouvions le faire directement dans postgres!
Voir post – Quassnoi
mise à jour Déplacé de modifier: Malheureusement, , L'approche originale de Quassnoi n'a pas semblé aider; J'ai obtenu la même liste de résultats de la nouvelle méthode que je reçois de ce que j'utilisais à l'origine. J'ai essayé d'ajouter QUAND 1 $ = 2 $ et 1 $ initialement, mais je ne savais pas à propos de SORTOP. –