Postgresql Cross-Table Query Explication détaillée et tablefunc
Application du module
Cet article présentera comment utiliser le module
pour créer une table transversale dans Query dans PostgreSQL. tablefunc
module tablefunc
Tout d'abord, vous devez installer
tablefunc
<code class="language-sql">CREATE EXTENSION IF NOT EXISTS tablefunc;</code>
Tableau de test:
Tableau de croisement cible:
<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>
fonction
<code>Section | Active | Inactive ---------+--------+---------- A | 1 | 2 B | 4 | 5 C | | 7</code>
crosstab
Formulaire du paramètre double (recommandation):
L'influence de plusieurs lignes d'entrée
<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>
Forme de paramètre unique:
<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>
La valeur excessive sera rejetée.
Les banques d'entrée antérieures sont préférées.Formulaire à double paramètre:
Exemples avancés
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!