Я хочу применить два разных угла запроса в одном утверждении. У меня есть таблица клиентов с информацией о городе и количестве продуктов, которые они купили как
c_id,city,no_products
1, city1,0
2, city2,20
3, city2,80
4,city1,10
Сводка, которую я ищу, сгруппирована по городам, а также по номеру no_products, включая 0 отсчетов для диапазона, который не является существовал в табл. Диапазоны предопределены как grpA = no_products в диапазоне от 0 до 50, grpB = no_products в диапазоне от 51 до 100.
city,total_customers,grpA,grpB
city1,2,2,0
city2,2,1,1
Так же, как и выше, я хочу, чтобы select City,count(*) as city_customer_count from C_tbl group by City
был вложен с
select t.range as [GROUPS], count(*) as [number of customers]
from (
select case
when no_products between 0 and 20 then N'GROUPC'
when no_products between 21 and 80 then N'GROUPB'
when no_products > 80 then N'GROUPA'
end as range
from C_tbl) t
group by t.range
Однако в приведенном выше запросе также не учитывается 0 для несуществующего диапазона.