我也见过其他化名分组的例子。然而,我似乎不能使它为我的例子工作。
我有一个表与人的信息,我想分组的年龄类别(20-25、26-30、31-35、36-40和>40)
到目前为止我管理的代码是:
select sub
from (
select Case
when Age <26 then'20-26'
when Age <31 then '26-30'
when Age < 36 then '31-35'
when Age <41 then '36-40'
else '>40'
end
from people
) as sub
Group by sub
我想得到每个年龄组的总人数。
5条答案
按热度按时间nfzehxib1#
使用cte生成范围,然后在该cte上聚合:
请注意,在其他一些数据库供应商(如mysql和sqlite)上,您实际上可以
GROUP BY
在同一查询的select中定义的别名,因此在这种情况下甚至不需要正式的cte/子查询。mgdq6dx12#
请使用下面的查询,
lyr7nygr3#
你可以用
case
直接在group by
条款。或者,可以计算值对于
group by
合同条款cross apply
接线员。演示。
9wbgstp74#
如果希望结果集包含零人的组,我建议使用派生表方法:
k3bvogb15#
谢谢大家的帮助。我用了下面的,它的工作!!!