Detaillierte Erläuterung der PostgreSQL-Kreuztabellenabfrage und der tablefunc
Modulanwendung
In diesem Artikel wird detailliert beschrieben, wie Sie mit dem tablefunc
-Modul eine Kreuztabellenabfrage in PostgreSQL erstellen.
tablefunc
Modul
Zuerst müssen Sie die tablefunc
-Erweiterung installieren:
<code class="language-sql">CREATE EXTENSION IF NOT EXISTS tablefunc;</code>
Beispiel
Testformular:
<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>
Zielkreuztabelle:
<code>Section | Active | Inactive ---------+--------+---------- A | 1 | 2 B | 4 | 5 C | | 7</code>
crosstab
Funktion
Einzelparameterformular (eingeschränkt):
<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>
Doppelte Parameterform (empfohlen):
<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>
Die Auswirkungen der mehrzeiligen Eingabe
Einzelparameterformular:
Doppelparameterform:
Erweiterte Beispiele
crosstabview
PostgreSQL 9.6 hat diesen Metabefehl in psql eingeführt:
<code class="language-sql">db=> SELECT section, status, ct FROM tbl \crosstabview</code>
Das obige ist der detaillierte Inhalt vonWie erstelle ich Kreuztabellenabfragen in PostgreSQL mit dem Modul „tablefunc'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!