Подсчитайте количество заявок, по которым было принято решение, по их категории?

#sql #oracle

Вопрос:

В моей таблице 4 столбца.

статус: (Это строка, которая либо добавлена, либо принята, либо отклонена значением P, A или R)
источник: (это код, подобный BBQ5)
идентификатор: (это уникальный идентификационный номер)

Так что ссора была бы чем-то вроде

Принято GBBG 2109202

Я хочу упорядочить их по количеству принятых/ отклоненных / отправленных на источник

Я придумал это.

 SELECT status , count(status) FROM myTable WHERE source in ( 'BB5', 'GGG', 'FEV' ) GROUP BY status  

это дает мне количество отклоненных, но мне нужно, чтобы оно указывалось для каждого кода. Возможно ли это в sql ?

Комментарии:

1. Я не верю, что код, который вы опубликовали, действительно работает. Это должно привести к синтаксической ошибке.

2. привет, исправлен код.

3. Пожалуйста, добавьте некоторые примеры данных и ожидаемый результат. Мне не ясно, что именно тебе нужно.

Ответ №1:

используйте случай, когда для категорий статуса

 SELECT  source, sum(case when status='accepted' then 1 end) accepted_count, sum(case when status='rejected' then 1 end) rejected_count FROM myTable WHERE source in ( 'BB5', 'GGG', 'FEV' ) group by source  

Комментарии:

1. это решило проблему, большое вам спасибо, сэр!