2016-08-30 2 views
0

Wie kann ich so etwas wie:GROUP_CONCAT mehrere Felder in Vertica

SELECT ID, Store, 
      GROUP_CONCAT(keyword::VARCHAR) OVER (PARTITION BY ID, Store ORDER BY num ASC) AS keywords, 
      GROUP_CONCAT(url::VARCHAR) OVER (PARTITION BY ID, Store ORDER BY num ASC) AS urls 
FROM table_name 

ich die folgenden Fehler, wenn ich die obige Abfrage:

können nicht angeben, mehr als eine benutzerdefinierte Transformationsfunktion in der SELECT-Liste

Ich versuchte MySQL GROUP_CONCAT multiple fields, aber das scheint wie eine MySQL-Sache. Ich glaube auch, GROUP_CONCAT ist nicht mehr Unterstützung für Vertica 7.1.x, also wenn es eine bessere Möglichkeit, dies zu tun, bin ich offen dafür.

+0

Wie die Nachricht sagt, können Sie nicht mehr als einen UDTF in der Auswahlliste haben. Vielleicht zwei verschiedene Selects und eine Verbindung dazwischen? – mauro

Antwort

0

Sie können GROUP_CONCAT unter der Vertica github strings package finden. Sie sollten in der Lage sein, nur make und make install, wenn Ihr vsql Pfad richtig eingerichtet ist.

Eine andere Alternative wäre die Verwendung von agg_concatenate, die im Beispielverzeichnis enthalten ist. Sie müssten den SQL-Code ein wenig zurückverfolgen, um die Reihenfolge in der Verkettung zu korrigieren. Sie können Beispiele dafür in diesem stackoverflow answer sehen.