Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Pertanyaan Crosstab dalam PostgreSQL menggunakan modul `tablefunc`?
Penjelasan terperinci tentang pertanyaan tab silang PostgreSQL dan tablefunc
aplikasi modul
Artikel ini akan memperkenalkan secara terperinci cara menggunakan modul tablefunc
untuk membuat pertanyaan tab silang dalam PostgreSQL.
Pasang tablefunc
modul
Pertama, anda perlu memasang sambungan tablefunc
:
<code class="language-sql">CREATE EXTENSION IF NOT EXISTS tablefunc;</code>
Contoh
Borang ujian:
<code class="language-sql">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);</code>
Tab silang sasaran:
<code>Section | Active | Inactive ---------+--------+---------- A | 1 | 2 B | 4 | 5 C | | 7</code>
crosstab
Fungsi
Borang parameter tunggal (terhad):
<code class="language-sql">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);</code>
Borang parameter berganda (disyorkan):
<code class="language-sql">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);</code>
Kesan input berbilang talian
Borang parameter tunggal:
Borang parameter berganda:
Contoh Terperinci
crosstabview
PostgreSQL 9.6 memperkenalkan meta-perintah ini dalam psql:
<code class="language-sql">db=> SELECT section, status, ct FROM tbl \crosstabview</code>
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!