我想转换一个数据库。
我将从那开始...
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”,但是我不确定该怎么做。
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;
这是您要寻找的吗?