Получать много столбцов в одном запросе

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

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

select '3'as sourceId, (select count(*) from event where sourceId = 3 and plateCategoryId = 3) as TotalNewCount, (select count(*) from event where sourceId = 3 and plateCategoryId = 4) as TotalOldCount; 

Мне нужно получить TotalNewCount и TotalOldCount для нескольких идентификаторов источников, например (3,4,5,6)

Может ли кто-нибудь помочь, как я могу пересмотреть свой запрос, чтобы вернуть результирующий набор из трех столбцов, включая данные всех источников в списке (3,4,5,6)

благодаря

Вы можете сделать все исходные идентификаторы одновременно:

 select source_id sum(case when plateCategoryId = 3 then 1 else 0 end) as TotalNewCount, sum(case when plateCategoryId = 4 then 1 else 0 end) as TotalOldCount from event group by source_id; 

Используйте where (до group by ), если вы хотите ограничить исходные идентификаторы.

Примечание. Вышеупомянутое работает как в Vertica, так и в MySQL, а стандартное SQL должно работать в любой базе данных.