PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Array agregat Postgresql

Gunakan array_agg:http://www.sqlfiddle.com/#!1/5099e/1

SELECT s.name,  array_agg(g.Mark) as marks        
FROM student s
LEFT JOIN Grade g ON g.Student_id = s.Id
GROUP BY s.Id

Omong-omong, jika Anda menggunakan Postgres 9.1, Anda tidak perlu mengulang kolom pada SELECT ke GROUP BY, mis. Anda tidak perlu mengulang nama siswa di GROUP BY. Anda hanya dapat GROUP BY pada kunci utama. Jika Anda menghapus kunci utama siswa, Anda perlu mengulang nama siswa di GROUP BY.

CREATE TABLE grade
    (Student_id int, Mark varchar(2));

INSERT INTO grade
    (Student_id, Mark)
VALUES
    (1, 'A'),
    (2, 'B'),
    (2, 'B+'),
    (3, 'C'),
    (3, 'A');


CREATE TABLE student
    (Id int primary key, Name varchar(5));

INSERT INTO student
    (Id, Name)
VALUES
    (1, 'John'),
    (2, 'David'),
    (3, 'Will');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. koneksi lokal docker postgres pgadmin

  2. gem install pg --with-pg-config berfungsi, bundel gagal

  3. Postgres - Berfungsi untuk mengembalikan persimpangan 2 ARRAY?

  4. Bagaimana cara memformat bidang bigint menjadi tanggal di Postgresql?

  5. Tidak ditemukan driver yang cocok untuk jdbc:postgresql://192.168.1.8:5432/NexentaSearch