Saya mempunyai jadual berikut:
id | Kod | Jumlah | Kuantiti |
---|---|---|---|
1 | 1 | 25 | 36 |
2 | 2 | 30 | 6 |
3 | 5 | 100 | 1 |
4 | 1 | 25 | 100 |
5 | 1 | 20 | 1 |
6 | 4 | 10 | 136 |
7 | 1 | 10 | 20 |
Saya ingin mencari jumlah semua amaun yang mana kod = 1 dan juga memerlukan nilai dipisahkan koma semua kuantiti dan nilai diasingkan koma semua id untuk semua acara tersebut.
Sebagai contoh: Output sepatutnya kelihatan seperti ini:
Kod | Jumlah | Kuantiti | id |
---|---|---|---|
1 | 80 | 36, 100,1, 20 | 1,4,5,7 |
Saya tahu saya boleh melakukan sesuatu yang serupa
SELECT code ,SUM(amount) FROM table1 where code = 1 group by code;
untuk mendapatkan jumlah yang sepadan dengan kod ini tetapi tidak tahu bagaimana untuk mendapatkan semua kuantiti dan ID tersebut.
DBFiddle
Dalam MySQL anda boleh menggunakan
GROUP_CONCAT
Pertanyaan #1
Lihat di DB Fiddle
Dalam Postgres anda boleh menggunakan
string_agg
Pertanyaan #1
Lihat di DB Fiddle
Anda boleh menggunakan
GROUP_CONCAT
untuk mengumpulkan semua data anda:GROUP_CONCAT
Secara lalai koma (,) digunakan sebagai pembatas supaya anda boleh menulis pertanyaan yang sama:Jika anda mahukan pembatas lain, anda juga boleh menentukannya secara khusus.