sql server - How to formulate a TSQL CTE expression for total counts? -
i have table raw data want return distinct people_id counts from. how can in cte if counts have different groupings? here have far:
;with cte (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 #enrollments en (nolock) ) select 'tn - level 4', case when (program_modifier_id = 'e1aa7a36-0500-4bae-a0aa-d9e0bc91a6f3' ) count(distinct people_id) end 'total ct' cte group program_modifier_id union select 'tn - level 3 ce - rtc', case when (program_modifier_id = '213d080f-e340-44b6-ac8c-4233d1193602' , license_number '%-rtc-%') count(distinct people_id) end 'total ct' cte group program_modifier_id, license_number the output is:
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 but want output like:
tn - level 3 ce - rtc 118 tn - level 4 56 so problem two-fold. first, of these counts include more 1 condition in clause. example, program_modifier_id vs. program_modifier_id , license_number. second problem using tsql code above, have group both program_modifier_id , license_number in order include license_number in clause. don't want breakdown count on license_number. want total count, regardless of license_number. how can modify tsql query achieve desired counts?
;with cte (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 #enrollments en (nolock) ) select description,sum([total ct]) [total ct] ( select 'tn - level 4' description, case when (program_modifier_id = 'e1aa7a36-0500-4bae-a0aa-d9e0bc91a6f3' ) count(distinct people_id) end 'total ct' cte group program_modifier_id ) group description union select description,sum([total ct]) ( select 'tn - level 3 ce - rtc'as description, case when (program_modifier_id = '213d080f-e340-44b6-ac8c-4233d1193602' , license_number '%-rtc-%') count(distinct people_id) end 'total ct' cte group program_modifier_id, license_number ) group description
Comments
Post a Comment