我想将数据从SQL数据库中的一个表中分组。用于分组的字段是数字的,我想要的组不遵循任何数学公式,例如。
组0值未知(NULL)
第1组值0 - 499
第2组值500 - 999
第3组价值1000 - 1999
第4组值2000 - 4999
第5组值5000 +
如何使用TSQL实现这一目标?
顺便说一下,我想这样做才能在Crystal Report中显示,所以如果有更好的方法在Crystal Reports中执行此操作而不是通过SQL Select语句,那么请提供建议。
答案 0 :(得分:1)
您可以使用case
创建自定义组。如果在子查询中定义case
,则不必重复定义:
select Grp
, sum(col2)
, avg(col3)
from (
select case
when col1 is null then 0
when col1 between 0 and 499 then 1
when col1 between 500 and 999 then 2
...
end as Grp
, *
) as SubQueryAlias
group by
Grp