Hallo, ich habe zwei Tische
Student
--------
Id Name
1 John
2 David
3 Will
Grade
---------
Student_id Mark
1 A
2 B
2 B+
3 C
3 A
Ist es möglich, native Postgresql auszuwählen, um Ergebnisse wie diese zu erhalten:
Name Array of marks
-----------------------
'John', {'A'}
'David', {'B','B+'}
'Will', {'C','A'}
Aber nicht so
Name Mark
----------------
'John', 'A'
'David', 'B'
'David', 'B+'
'Will', 'C'
'Will', 'A'
sql
arrays
postgresql
Eazy
quelle
quelle
Was ich verstehe, können Sie so etwas tun:
BEARBEITEN
Ich bin nicht sicher. Aber vielleicht so etwas dann:
Referenz hier
quelle
Sie könnten Folgendes verwenden:
Wie hier beschrieben: http://www.mkyong.com/database/convert-subquery-result-to-array/
quelle
@ Michael Buen hat es richtig gemacht. Mit array_agg habe ich bekommen, was ich brauchte.
Hier nur ein einfaches Abfragebeispiel für den Fall, dass es jemandem hilft:
SELECT directory, ARRAY_AGG(file_name) FROM table WHERE type = 'ZIP' GROUP BY directory;
Und das Ergebnis war so etwas wie:
parent_directory | array_agg | ------------------------+----------------------------------------+ /home/postgresql/files | {zip_1.zip,zip_2.zip,zip_3.zip} | /home/postgresql/files2 | {file1.zip,file2.zip} |
Dieser Beitrag hat mir auch sehr geholfen: "Gruppieren nach" in SQL und Python Pandas . Grundsätzlich heißt es, dass es bequemer ist, wenn möglich nur SQL zu verwenden, Python-Pandas jedoch nützlich sein können, um zusätzliche Funktionen im Filterprozess zu erreichen.
Ich hoffe, es hilft
quelle