Подсчет по конкретным значениям в разных столбцах - PullRequest
0 голосов
/ 17 сентября 2018
Register ID    Status        Process 
102            chat          end state
102            chat          end state
102            relo          end state
103            bifurcate     end state
103            diverge       transfer state
104            chat          null state
104            transfer      null state
104            relo          retro state
105            transfer      null state
105            emancipate    retro state
105            chat          hello state
105            chat          inner state
106            rater         end state
106            chat          null state
107            rater         null state
107            relo          transfer state
107            chat          intro state

То, что я пытаюсь получить, это когда у меня есть значение «чат» в столбце состояния только один раз по идентификатору отправителя, а также значение «конечное состояние» равно нулю в столбце процесса для того же отправителя.Идентификатор Я хочу посчитать этот идентификатор отправителя и отобразить этот идентификатор отправителя. Результат, который я ожидаю ниже: Может кто-нибудь помочь!

Вывод
Количество отдельных идентификаторов регистра, которые имеют только один статус чата и нетпроцесс конечного состояния 2

Отличительный идентификатор регистра, который имеет только один статус чата и не имеет процесса конечного состояния 104 106

1 Ответ

0 голосов
/ 17 сентября 2018

Если я правильно понимаю, вам нужно это:

select RegisterID 
from your_table
group by RegisterID
having 
sum(case when Status='chat' then 1 end) = 1
and
sum(case when Process = 'end state' then 1 else 0 end) = 0

Или, если вам нужно количество таких RegisterID s вставок списка, то:

select count(*) from (
    select RegisterID 
    from your_table
    group by RegisterID
    having 
    sum(case when Status='chat' then 1 end) = 1
    and
    sum(case when Process = 'end state' then 1 else 0 end) = 0
) t
...