Herramientas de usuario

Herramientas del sitio


informatica:base_de_datos:postgresql:postgresql_pivot

¡Esta es una revisión vieja del documento!


PostgreSQL PIVOT

No hay PIVOT, por desgracia esa función tan útil no existe, pero se puede utilizar artificios para obtener un resultado parecido.

CREATE EXTENSION IF NOT EXISTS tablefunc;
 
CREATE TABLE tbl (
   section   text
 , status    text
 , ct        integer  -- "count" is a reserved word in standard SQL
);
 
INSERT INTO tbl VALUES 
  ('A', 'Active', 1), ('A', 'Inactive', 2)
, ('B', 'Active', 4), ('B', 'Inactive', 5)
                    , ('C', 'Inactive', 7);  -- ('C', 'Active') is missing
 
 
SELECT *
FROM   crosstab(
   'SELECT section, status, ct
    FROM   tbl
    ORDER  BY 1,2'  -- needs to be "ORDER BY 1,2" here
   ) AS ct ("Section" text, "Active" int, "Inactive" int);
informatica/base_de_datos/postgresql/postgresql_pivot.1769653452.txt.gz · Última modificación: 2026/01/29 02:24 por admin