PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Transponuj wiersze SQL jako kolumny

Użyj:

  SELECT r.user_id,
         MAX(CASE WHEN r.question_id = 1 THEN r.body ELSE NULL END) AS "Do you like apples?",
         MAX(CASE WHEN r.question_id = 2 THEN r.body ELSE NULL END) AS "Do you like oranges?",
         MAX(CASE WHEN r.question_id = 3 THEN r.body ELSE NULL END) AS "Do you like carrots?"
    FROM RESPONSES r
    JOIN QUESTIONS q ON q.id = r.question_id
GROUP BY r.user_id

To jest standardowe zapytanie przestawne, ponieważ „przestawiasz” dane z wierszy na dane kolumnowe.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. błąd instrukcji sql:kolumna .. nie istnieje

  2. PostgreSQL 8.4 przyznaje uprawnienia DML do wszystkich tabel do roli

  3. Tworzenie sekwencji PostgreSQL do pola (które nie jest identyfikatorem rekordu)

  4. Co nowego w PgBouncerze 1.6

  5. serial w postgresie jest zwiększany mimo że dodałem na konflikcie nic nie rób