您可以使用
case和条件聚集:
select (case when subscriptions <= 4 then '1 to 4' when subscriptions <= 11 then '5 to 11' when subscriptions <= 15 then '12 to 15' end) as subscription_range, sum(case when state = 'LA' then 1 else 0 end) as LA, sum(case when state = 'NY' then 1 else 0 end) as NY, sum(case when state = 'OH' then 1 else 0 end) as OHfrom tgroup by (case when subscriptions <= 4 then '1 to 4' when subscriptions <= 11 then '5 to 11' when subscriptions <= 15 then '12 to 15' end)order by min(subscriptions);



