Herramientas de usuario

Herramientas del sitio


informatica:base_de_datos:postgresql:postgresql_pivot

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.txt · Última modificación: 2026/01/29 02:50 por admin