Postgresql Cross-Table Query Explication détaillée et tablefunc
Application du module
pour créer une table transversale dans Query dans PostgreSQL. tablefunc
module tablefunc
Tout d'abord, vous devez installer
tablefunc
CREATE EXTENSION IF NOT EXISTS tablefunc;
<表> Tableau de test:
<标> Tableau de croisement cible:
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);
<<> 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
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);
<参> Forme de paramètre unique:
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);
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!