PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Ciutkan baris menjadi satu kolom

Pertama instal ekstensi tablefunc , jika Anda belum melakukannya. Perlu dilakukan sekali per database.

CREATE EXTENSION tablefunc;

Anda memerlukan PostgreSQL 9.1 untuk CREATE EXTENSION . Di versi yang lebih lama Anda harus menjalankan skrip instal dari shell dengan perintah seperti:

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

Info lebih lanjut untuk Postgres 9.0 di manual yang bagus .

Kemudian Anda dapat menggunakan kueri seperti ini:

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
);

Mengembalikan persis seperti yang Anda minta.
Anda juga dapat membuat fungsi untuk itu. Saya menambahkan informasi lebih lanjut dalam jawaban yang terkait erat ini .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membagi array menjadi baris di Postgresql

  2. Cara efisien untuk menarik data dari database kedua?

  3. Arsitektur dan Penyetelan Memori di Database PostgreSQL

  4. POSTGRESQL Kunci Asing Merujuk Kunci Utama dari dua Tabel Berbeda

  5. Bagaimana cara mengembalikan file dump PostgreSQL ke database Postgres?