簡體   English   中英

Postgres-旋轉許多行-性能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM