我有一张这样的桌子:
create table myschema.mytable
(
zone varchar(50),
description varchar(50),
amount double precision
);
我执行这样的插入(不是实际的查询,只是为了理解数据):
insert into myschema.mytable (zone, description, amount)
values
('South', 'A1', 40),
('North', 'A1', 50),
....
('South', 'A2', 10),
('North', 'A2', 20),
('West', 'A2', 5);
我总共在该表(和4个区域)中拥有500条记录;如何执行“枢轴”查询以获得类似的内容?
A1 A2 A3 .... Zone
---------------------
40 10 2 South
50 20 1 North
0 5 3 West
我这里的主要问题是性能...我试图为每个“类别”进行一系列的左联接,但在性能方面却需要很多空间
答案 0 :(得分:0)
您可以改为进行条件聚集:
select zone,
sum(case when descr = 'A1' then amt else 0 end),
sum(case when descr = 'A2' then amt else 0 end),
sum(case when descr = 'A3' then amt else 0 end),
. . .
from mytable t
group by zone;