-- Create sample data
CREATE TABLE quarterly_sales (
tenant_id uuid,
year int,
quarter text,
sales numeric
);
INSERT INTO quarterly_sales VALUES
('11111111-1111-1111-1111-111111111111', 2023, 'Q1', 100),
('11111111-1111-1111-1111-111111111111', 2023, 'Q2', 150),
('11111111-1111-1111-1111-111111111111', 2023, 'Q3', 130),
('11111111-1111-1111-1111-111111111111', 2023, 'Q4', 180),
('11111111-1111-1111-1111-111111111111', 2024, 'Q1', 120),
('11111111-1111-1111-1111-111111111111', 2024, 'Q2', 160);
-- Create cross tab of sales by year and quarter
SELECT * FROM crosstab(
'SELECT year, quarter, sales
FROM quarterly_sales
ORDER BY 1,2',
'SELECT DISTINCT quarter
FROM quarterly_sales
ORDER BY 1'
) AS ct (
year int,
"Q1" numeric,
"Q2" numeric,
"Q3" numeric,
"Q4" numeric
);