Vereinigung von Arrays als Aggregatfunktion

8

Ich habe folgende Eingabe:

%Vor%

Ich möchte die folgende Ausgabe:

%Vor%

Ich gruppiere nach Namen. Für jede Gruppe sollte die Anzahl als max aggregiert werden und die Optionen sollten als union aggregiert werden. Ich habe Probleme herauszufinden, wie das letztere funktioniert.

Momentan habe ich diese Abfrage:

%Vor%

Ссылка

Ich weiß, dass dies leicht getan werden kann, indem man eine benutzerdefinierte Aggregatfunktion definiert, aber ich möchte dies über eine Abfrage tun. Ich verstehe die Grundlagen von unnest() das Array (und array_agg() die Ergebnisse später), aber kann nicht herausfinden, wie dies in meiner Abfrage injizieren.

    
Kate Tres 18.05.2017, 12:53
quelle

1 Antwort

3

Sie können einen impliziten lateralen Join mit unnest(options) in der Liste FROM verwenden und dann mit array_agg(distinct v) ein Array mit den folgenden Optionen erstellen:

%Vor%     
Marth 18.05.2017, 12:58
quelle