使用PostgreSQL修改列(初学者)

问题描述 投票:0回答:1

我想转换一个数据库。

我将从那开始...

path ; cost; sexe
42-60 ; 12; male
42-60; 5; female
42-61; 3.59; male
42-62; 13.85; male
42-62; 2.96; female

...到那个

path; male; female
42-60 ; 12; 5;
42-61; 3.59; 0
42-62; 13.85; 2.96

我知道我必须使用“ array_agg”,但是我不确定该怎么做。

postgresql calculated-columns
1个回答
0
投票
create temporary table test as
select * from (values ('42-60', 12, 'male'),
                      ('42-60', 5, 'female'),
                      ('42-61', 3.59, 'male'),
                      ('42-61', 13.85, 'male'),
                      ('42-62', 2.96, 'female')) as t(path, cost, sex);

select path,
       sum(case sex when 'male' then cost else 0 end) as male,
       sum(case sex when 'female' then cost else 0 end) as female
from test group by path;

这是您要寻找的吗?

© www.soinside.com 2019 - 2024. All rights reserved.