Объединение двух (или более) «групп по», как таблица результатов запроса - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть такая таблица:

name area timestamp  
aa   10   timestamp  
aa   12   timestamp  
aa   22   timestamp  
bb   11   timestamp  
bb   11   timestamp  
cc   11   timestamp  

Я могу сделать следующее:

select name, sum(area) as sum1 from mytable where "condition1 based on timestamp" group by name;  
select name, sum(area) as sum2 from mytable where "condition2 based on timestamp" group by name;

Но то, что мне действительно нужно, должно выглядеть так:

name sum1 sum2  
aa   444  555  
bb   666  777  
cc   111  222  

Есть идеи, что это можно сделать?

1 Ответ

1 голос
/ 28 апреля 2020

Использовать условную агрегацию:

select name, 
       sum(area) filter (where condition1) as sum1, 
       sum(area) filter (where condition2) as sum2
group by name;
...