[英]Postgres - pivot many rows - performance
我有一張這樣的桌子:
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
我這里的主要問題是性能...我嘗試為每個“類別”進行一系列的左聯接,但在性能方面卻占用了大量空間
您可以改為進行條件聚合 :
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.