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

Проблеми с Crosstab/Pivot на PostgreSQL

Тестов случай (предпочитан начин за предоставяне на примерни данни):

CREATE TEMP TABLE prefs (pref_id int, pref_name text, pref_value text);

INSERT INTO prefs VALUES 
 (1, 'PagerNumber' , '2125551234')
,(2, 'PagerCarrier', '@att.com')
,(3, 'PagerCarrier', '@something.com');

Заявка:

SELECT *
FROM   crosstab(
       'SELECT pref_id, pref_name, pref_value
        FROM   prefs
        ORDER  BY 1, 2',

       $$VALUES ('PagerNumber'::text), ('PagerCarrier')$$
       )
AS x (section text, pager_number bigint, pager_carrier text);

Връща точно резултата, изобразен във вашия въпрос. Ако PagerNumber може да бъде нещо различно от валиден bigint номер, използвайте text вместо това.

Отговорът, който имате предвид във вашия въпрос, беше остарял и никога не беше правилен. Добавих правилен отговор с обяснение и връзки там.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Множество нежелани записи в група по клауза в Postgress

  2. Изпълнение на множество екземпляри на PostgreSQL на един хост

  3. Как да вземете един произволен елемент от база данни в Django/postgreSQL?

  4. rake db:създаване на грешка при кодиране с postgresql

  5. Тестване на Cucumber и RSpec със zeus:Postgres е достъпен от други потребители