日期:2014-05-18  浏览次数:20656 次

求sql统计语句(请过往各位义士多多指教)
有表 a
结构为
日期 站名 菌落值
10-1 张强 12
10-1 王冰 98
10-2 张强 18
10-2 王冰 (空白)
10-3 张强 59
10-3 王冰 2.2
现我想统计菌落值超过50的各站及检测次数应该怎么写
 所需要结果为:
站名 检测次数 超标次数
张强 3 1
王冰 2 1 


------解决方案--------------------
SQL code
--> --> (Roy)生成測試數據
 
declare @T table([日期] nvarchar(4),[站名] nvarchar(2),[菌落值] decimal(18,1))
Insert @T
select N'10-1',N'张强',12 union all
select N'10-1',N'王冰',98 union all
select N'10-2',N'张强',18 union all
select N'10-2',N'王冰',null union all
select N'10-3',N'张强',59 union all
select N'10-3',N'王冰',2.2
 

select 站名,检测次数=count( 菌落值) ,超标次数=sum(case when 菌落值>50 then 1 else 0 end) from @T group by 站名

/*
站名    检测次数    超标次数
王冰    2    1
张强    3    1
*/