Salut j'ai deux tables
Student
--------
Id Name
1 John
2 David
3 Will
Grade
---------
Student_id Mark
1 A
2 B
2 B+
3 C
3 A
Est-il possible de faire une sélection native de Postgresql pour obtenir des résultats comme celui-ci:
Name Array of marks
-----------------------
'John', {'A'}
'David', {'B','B+'}
'Will', {'C','A'}
Mais pas comme ça
Name Mark
----------------
'John', 'A'
'David', 'B'
'David', 'B+'
'Will', 'C'
'Will', 'A'
sql
arrays
postgresql
Eazy
la source
la source
Ce que je comprends, vous pouvez faire quelque chose comme ceci:
ÉDITER
Je ne suis pas sûr. Mais peut-être quelque chose comme ça alors:
Référence ici
la source
Vous pouvez utiliser les éléments suivants:
Comme décrit ici: http://www.mkyong.com/database/convert-subquery-result-to-array/
la source
@Michael Buen a bien compris. J'ai obtenu ce dont j'avais besoin en utilisant array_agg.
Voici juste un exemple de requête de base au cas où cela aiderait quelqu'un:
SELECT directory, ARRAY_AGG(file_name) FROM table WHERE type = 'ZIP' GROUP BY directory;
Et le résultat était quelque chose comme:
parent_directory | array_agg | ------------------------+----------------------------------------+ /home/postgresql/files | {zip_1.zip,zip_2.zip,zip_3.zip} | /home/postgresql/files2 | {file1.zip,file2.zip} |
Cet article m'a également beaucoup aidé: "Group By" en SQL et Python Pandas . Il dit essentiellement qu'il est plus pratique d'utiliser uniquement SQL lorsque cela est possible, mais que Python Pandas peut être utile pour obtenir des fonctionnalités supplémentaires dans le processus de filtrage.
J'espère que ça aide
la source