PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да създадете колони за различни полета, без да прилагате функцията за завъртане

Ако имате фиксиран брой колони, можете да използвате масив:

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

Обърнете внимание, че distinct обикновено не е необходимо, когато използвате 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. Как работи current_time в PostgreSQL

  2. Добавете знак плюс/минус към число в PostgreSQL

  3. Премахването на индекс с psycopg2 влиза в сила преди или след извършване?

  4. как да направите подобно търсене в postgresql и node js

  5. За предимствата на сортираните пътища