#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. это решило проблему, большое вам спасибо, сэр!