Concat Zeilen in Postgres
Gegeben ist eine Postgres-Tabelle wie diese
nummer vorname name cash
------ | ----------- | ----------- | -----
1 paul smith 500
2 andy london 700
2 mike dover 700
3 clara winchester 200
Zur Abfrage dieser Tabelle sind meine sql sieht wie folgt aus rechts weiß:
SELECT
nummer,
vorname,
name,
cash as total
FROM
data.myTable
GROUP BY
nummer,
name,
vorname,
cash
ORDER BY
nummer;
Ist es möglich, concat, die zwei Zeilen, wo nummer
ist das gleiche (in diesem Fall 2
).
Bedeutet, dass meine Ausgabe sollte wie folgt Aussehen (cash haben auch die gleichen Werte, wenn die Nummern gleich sind):
nummer vorname name cash
------ | ----------- | ----------- | -----
1 paul smith 500
2 andy london 700
mike dover
3 clara winchester 200
InformationsquelleAutor t Book | 2012-09-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
GROUP BY
und die Anhäufung functioinstring_agg()
:Fügte ich
cash
zu denGROUP BY
zu erhalten, um den ursprünglichen Wert und die Absicherung gegen den Fall, wo es anders wäre, für die gleichennummer
.Als zu Ihrem Kommentar:
Beachten Sie, dass ich entfernt
DISTINCT
von der Aggregat-Funktion. Ein versehen war. Sie könnten, zu entfernen der Duplikate pro Spalte (die hast du nicht angegeben).InformationsquelleAutor Erwin Brandstetter
Das sollte es tun.
Nach der Frage,
sum()
falsch sein sollte?Recht, verzeihen Sie mir, die Summe ist falsch in diesem Fall 😉
fixiert es. Wie, um loszuwerden, das doppelte Namen, das ist eine schwierige Frage. Sie haben einige Fragen in Bezug auf Daten-Abhängigkeiten. Die Arbeit auf dieser Seite. eine Sek.
Was passiert, wenn der name nicht einzigartig, aber cash ist?
InformationsquelleAutor Chris Travers