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

Zwiń wiersze w jedną kolumnę

Najpierw zainstaluj rozszerzenie tablefunc , jeśli jeszcze tego nie zrobiłeś. Należy to zrobić raz na bazę danych.

CREATE EXTENSION tablefunc;

Potrzebujesz PostgreSQL 9.1 dla CREATE EXTENSION . W starszych wersjach musisz uruchomić skrypt instalacyjny z powłoki za pomocą polecenia takiego jak:

psql -d dbname -f SHAREDIR/contrib/tablefunc.sql

Więcej informacji na temat Postgres 9.0 w doskonałej instrukcji .

Następnie możesz użyć zapytania takiego jak to:

SELECT *
FROM   crosstab (
    'SELECT id
           ,label
           ,value
     FROM   t
     ORDER  BY 1, 2',

    'SELECT DISTINCT label
     FROM   t
     ORDER  BY 1')
AS tbl (
 id   int
,lab1 text
,lab2 text
,lab3 text
,lab4 text
,lab5 text
,lab6 text
);

Zwraca dokładnie to, o co prosiłeś.
Możesz również utworzyć funkcję do tego. Dodałem więcej informacji w tej ściśle powiązanej odpowiedzi .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Brak liblwgeom podczas korzystania z postgresql84 i postgis w systemie Snow Leopard z MacPorts

  2. Średnia ruchoma na podstawie znaczników czasu w PostgreSQL

  3. Czy PostgreSQL ma pseudokolumnę jak LEVEL w Oracle?

  4. Dodanie Postgresql do mojej aplikacji Heroku - problemy z zapytaniami powodującymi awarię składni?

  5. Czy istnieje wielobajtowy Postgresql Levenshtein?