У меня есть таблица с необработанными данными, из которых я хочу вернуть отличные числа people_id. Как я могу сделать это в CTE, если подсчеты имеют разные группировки? Вот то, что я до сих пор:Как сформулировать выражение TSQL CTE для общего подсчета?
;with cte as
(select
program_modifier_id, program_modifier, people_id, group_profile_id,
current_status, license_number, is_managing_office,
program_info, program_name, program_code, group_profile_type_id
From
#enrollments en with (nolock))
SELECT 'TN - Level 4',
CASE WHEN (program_modifier_id = 'E1AA7A36-0500-4BAE-A0AA-D9E0BC91A6F3')
THEN COUNT(DISTINCT people_id) END AS 'Total Ct'
from cte
group by program_modifier_id
UNION
SELECT 'TN - Level 3 CE - RTC',
CASE WHEN (program_modifier_id = '213D080F-E340-44B6-AC8C-4233D1193602'
AND license_number like '%-RTC-%')
THEN COUNT(DISTINCT people_id) END AS 'Total Ct'
from cte
group by program_modifier_id, license_number
Выход из этого:
TN - Level 3 CE - RTC 49
TN - Level 3 CE - RTC 38
TN - Level 4 56
TN - Level 3 CE - RTC 7
TN - Level 3 CE - RTC 24
TN - Level 3 CE - RTC NULL
TN - Level 4 NULL
Но я хочу выход выглядеть следующим образом:
TN - Level 3 CE - RTC 118
TN - Level 4 56
Так что проблема два раза , Во-первых, некоторые из этих показателей включают более одного условия в предложение WHERE. Например, program_modifier_id vs. program_modifier_id и license_number. Вторая проблема заключается в том, что, используя вышеприведенный TSQL-код, мне нужно сгруппировать как program_modifier_id AND license_number, чтобы включить номер лицензии в предложение WHERE. Но я не хочу разбивки на этот счет на license_Number. Мне просто нужен общий счет, независимо от номера лицензии. Как я могу изменить этот запрос TSQL для достижения желаемых показателей?