sql >> Databasteknik >  >> RDS >> PostgreSQL

SQL Transponera rader som kolumner

Använd:

  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

Detta är en vanlig pivotfråga, eftersom du "pivoterar" data från rader till kolumnära data.



  1. SQL Server Active Sessions and Status

  2. SQL Server Index Användningsstatistik

  3. Hur får man slutet på en dag?

  4. Beräkna skillnaden mellan två datumtider i MySQL