Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencipta Pertanyaan Crosstab dalam PostgreSQL menggunakan modul `tablefunc`?

Bagaimana untuk Mencipta Pertanyaan Crosstab dalam PostgreSQL menggunakan modul `tablefunc`?

DDD
Lepaskan: 2025-01-25 11:16:10
asal
526 orang telah melayarinya

Penjelasan terperinci tentang pertanyaan tab silang PostgreSQL dan tablefuncaplikasi modul

How to Create Crosstab Queries in PostgreSQL using the `tablefunc` module?

Artikel ini akan memperkenalkan secara terperinci cara menggunakan modul tablefunc untuk membuat pertanyaan tab silang dalam PostgreSQL.

Pasang tablefuncmodul

Pertama, anda perlu memasang sambungan tablefunc:

CREATE EXTENSION IF NOT EXISTS tablefunc;
Salin selepas log masuk

Contoh

Borang ujian:

CREATE TABLE tbl (
   section   text,
   status    text,
   ct        integer
);

INSERT INTO tbl VALUES 
  ('A', 'Active', 1), ('A', 'Inactive', 2),
  ('B', 'Active', 4), ('B', 'Inactive', 5),
  ('C', 'Inactive', 7);
Salin selepas log masuk

Tab silang sasaran:

<code>Section | Active | Inactive
---------+--------+----------
A       |      1 |        2
B       |      4 |        5
C       |        |        7</code>
Salin selepas log masuk

crosstabFungsi

Borang parameter tunggal (terhad):

SELECT *
FROM   crosstab(
   'SELECT section, status, ct
    FROM   tbl
    ORDER  BY 1,2'  -- 必须为 "ORDER BY 1,2"
   ) AS ct ("Section" text, "Active" int, "Inactive" int);
Salin selepas log masuk

Borang parameter berganda (disyorkan):

SELECT *
FROM   crosstab(
   'SELECT section, status, ct
    FROM   tbl
    ORDER  BY 1,2'  -- 也可简化为 "ORDER BY 1"

  , $$VALUES ('Active'::text), ('Inactive')$$
   ) AS ct ("Section" text, "Active" int, "Inactive" int);
Salin selepas log masuk

Kesan input berbilang talian

Borang parameter tunggal:

  • Isi lajur nilai yang tersedia dari kiri ke kanan.
  • Nilai berlebihan akan dibuang.
  • Baris input yang lebih lama diutamakan.

Borang parameter berganda:

  • Tetapkan setiap nilai input pada lajur khususnya.
  • Tulis ganti mana-mana tugasan sebelumnya.
  • Baris input kemudian diutamakan.

Contoh Terperinci

crosstabview

dalam psql

PostgreSQL 9.6 memperkenalkan meta-perintah ini dalam psql:

db=> SELECT section, status, ct FROM tbl \crosstabview
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Pertanyaan Crosstab dalam PostgreSQL menggunakan modul `tablefunc`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan