запросить группу по наличию и получить результаты в двух разных столбцах - PullRequest
0 голосов
/ 31 октября 2019

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

Name  Source ended_status date        Environment
House DC     1            2019/10/03  Pro
Cat   DC2    1            2019/10/05  Pro
Pen   DC     1            2019/10/03  Pro
Pen   DC     0            2019/11/07  Pre

Я хотел бы получить:

Source  Environment Ended_Status_with_1    Ended_Status_with_2
  DC        Pro               2                   0      
  DC        Pre               1                   0
  DC2       Pro               1                   0

Итак, они должны быть сгруппированы по источникам, средам, и я должен вычислить суммуиз всего, что они имеют Ended_Status с 1 и все с завершенным статусом 2 и помещены в одну и ту же строку.

Как я могу это сделать?

Я могу сделать запрос сгруппированным по каждому окончанию_стата, но я могуне помещайте две суммы завершенного статуса в одну строку.

Большое спасибо и извините за мой плохой английский!

Ответы [ 2 ]

1 голос
/ 02 ноября 2019

также, попробуйте ниже запрос

 select source,environment,sum(decode(ended_status,1,1,0)) ended_status_with_1,
    sum(decode(ended_status,2,1,0)) ended_status_with_2 from mytable
    group by source,environment
0 голосов
/ 31 октября 2019

Вы можете использовать условное агрегирование:

select 
    source,
    environment,
    sum(case when ended_status = 1 then 1 else 0 end) ended_status_with_1,
    sum(case when ended_status = 2 then 1 else 0 end) ended_status_with_2
from mytable
group by
    source,
    environment
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...