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);