Как агрегировать путем группировки в sql - PullRequest
1 голос
/ 05 августа 2020

Предположим, у меня есть следующие таблицы:

Я хотел бы сгруппировать по index, а затем sumup баллам. и я хочу добавить условное суммирование type=a столбцов.

index type score
A      a   10 
A      b   10
A      c   20
B      a   30
B      a   40

Мой желаемый результат, как показано ниже.

index  sum    sum(type=a) 
A       40      10
B       70      70

Я хотел бы добавить sum(type=a) столбцов в следующие sql.

select sum(t.type) as sum,t.type as type

from yourtable t

group by type

Есть ли способ достичь

1 Ответ

0 голосов
/ 05 августа 2020

Попробуйте ниже - используйте conditional агрегирование

select index,sum(score) as total_sum,
       sum(case when t.type='a' then score else 0 end) as sum_type_a
from yourtable t
group by index
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...