Postgresql globale de la matrice de
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 natif Postgresql sélectionnez cette option pour obtenir des résultats comme ceci:
Name Array of marks
-----------------------
'John', {'A'}
'David', {'B','B+'}
'Will', {'C','A'}
Mais pas comme ce
Name Mark
----------------
'John', 'A'
'David', 'B'
'David', 'B+'
'Will', 'C'
'Will', 'A'
Vous devez vous connecter pour publier un commentaire.
Utilisation array_agg: http://www.sqlfiddle.com/#!1/5099e/1
Par ailleurs, si vous utilisez Postgresql 9.1, vous n'avez pas besoin de répéter les colonnes sur SELECT pour le GROUPE, PAR ex. vous n'avez pas besoin de répéter le nom de l'étudiant sur le GROUPE de PAR. Vous pouvez vous contenter de GROUPE sur la clé primaire. Si vous retirez la clé primaire de l'élève, vous avez besoin de répéter le nom de l'étudiant sur le GROUPE PAR.
Ce que je comprends, vous pouvez faire quelque chose comme ceci:
MODIFIER
Je ne suis pas sûr. Mais peut-être quelque chose comme ceci ensuite:
Référence ici
Vous pouvez utiliser les éléments suivants:
Comme décrit ici: http://www.mkyong.com/database/convert-subquery-result-to-array/
@Michael Buen obtenu le droit. J'ai obtenu ce dont j'avais besoin à l'aide de array_agg.
Voici un exemple de requête dans le cas où il aide à 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} |
Ce post m'a beaucoup aidé: "Groupe" dans SQL et Python Pandas.
Il dit en gros que c'est plus pratique à utiliser uniquement SQL lorsque c'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 cela aide