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

Cara membuat kolom untuk bidang yang berbeda tanpa menerapkan fungsi pivot

Jika Anda memiliki jumlah kolom yang tetap, Anda dapat menggunakan array:

select studentnr, name, gradenumber, 
       languages[1] as language_1,
       languages[2] as language_2,
       languages[3] as language_3,
       languages[4] as language_4,
       languages[5] as language_5
FROM (       
  SELECT s.studentnumber as studentnr, 
         p.firstname AS name,
         sl.gradenumber as gradenumber,
         array_agg(DISTINCT l.text) as languages
  FROM student s
      JOIN pupil p ON p.id = s.pupilid    
      JOIN pupillanguage pl on pl.pupilid = p.id
      JOIN language l on l.id = pl.languageid
      JOIN schoollevel sl ON sl.id = p.schoollevelid
  GROUP BY s.studentnumber, p.firstname
) t

Perhatikan bahwa distinct biasanya tidak diperlukan saat Anda menggunakan group by



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java SQL ERROR:Nama_Tabel Relasi tidak ada

  2. Secara Otomatis Jatuhkan Tabel dan Indeks yang Lebih Lama dari 90 Hari

  3. PostgreSQL Naik Daun:Temuan Postgres 2018 &Tren 2019

  4. Pesan berdasarkan Kolom1 jika Kolom1 bukan nol, jika tidak pesan berdasarkan Kolom2

  5. psql.exe - otentikasi kata sandi gagal di windows