Hai, saya punya dua tabel
Student
--------
Id Name
1 John
2 David
3 Will
Grade
---------
Student_id Mark
1 A
2 B
2 B+
3 C
3 A
Apakah mungkin membuat pilihan Postgresql asli untuk mendapatkan hasil seperti ini:
Name Array of marks
-----------------------
'John', {'A'}
'David', {'B','B+'}
'Will', {'C','A'}
Tapi tidak seperti ini
Name Mark
----------------
'John', 'A'
'David', 'B'
'David', 'B+'
'Will', 'C'
'Will', 'A'
sql
arrays
postgresql
mudah
sumber
sumber
Yang saya mengerti Anda bisa melakukan sesuatu seperti ini:
EDIT
Saya tidak yakin. Tapi mungkin sesuatu seperti ini:
Referensi di sini
sumber
Anda bisa menggunakan yang berikut ini:
Seperti yang dijelaskan di sini: http://www.mkyong.com/database/convert-subquery-result-to-array/
sumber
@Ichael Buen melakukannya dengan benar. Saya mendapatkan apa yang saya butuhkan menggunakan array_agg.
Di sini hanya contoh kueri dasar jika itu membantu seseorang:
SELECT directory, ARRAY_AGG(file_name) FROM table WHERE type = 'ZIP' GROUP BY directory;
Dan hasilnya seperti ini:
parent_directory | array_agg | ------------------------+----------------------------------------+ /home/postgresql/files | {zip_1.zip,zip_2.zip,zip_3.zip} | /home/postgresql/files2 | {file1.zip,file2.zip} |
Posting ini juga banyak membantu saya: "Group By" di SQL dan Python Pandas . Ini pada dasarnya mengatakan bahwa lebih mudah menggunakan hanya SQL jika memungkinkan, tetapi Python Pandas dapat berguna untuk mencapai fungsionalitas tambahan dalam proses pemfilteran.
Saya harap ini membantu
sumber