首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

简单统计?解决方案

2012-01-26 
简单统计??买家区域板块月份--------------------------------------1闵行区人民广场31宝山区人民广场32宝

简单统计??
买家                     区域               板块               月份                    
-----------   --------   --------   -----------  
1                 闵行区             人民广场           3                      
1                 宝山区             人民广场           3                      
2               宝山区             人民广场           3                      
2                 浦东新区           人民广场           3                      
3               浦东新区           人民广场           3                      
1                 闵行区             人民广场           3                      
5               闵行区             人民广场           3                      
4                 浦东新区           人民广场           3                      
2               闵行区             南京西路           3                      
1               闵行区             南京西路           3                      
1                 闵行区             南京西路           3                      
7               闵行区             南京西路           3                      
7               浦东新区           南京西路           3                  
期望结果
a                                   b(个数)
-----------------------
首次出现                           3(3,4,5)
出现2次                             1(7)
出现3次                             1(2)


出现4次以上                       1(1)
           


[解决办法]
这个比较麻烦

大概:
select case when cnt=1 then N '首次出现 ' when cnt> =4 then N '出现4次以上 ' else N '出现 '+cast(cnt as varchar)+ '次 ' end as a,
,cast(count(*) as varchar)+ '( '+dbo.fn(cnt)+ ') ' as b
from (
select 买家,count(*) as cnt
from tablename group by 买家
) as t
group by cnt

其中dbo.fn是个函数

热点排行