求sql统计语句(请过往各位义士多多指教)

huilei_001 2011-10-28 10:06:32
有表 a
结构为
日期 站名 菌落值
10-1 张强 12
10-1 王冰 98
10-2 张强 18
10-2 王冰 (空白)
10-3 张强 59
10-3 王冰 2.2
现我想统计菌落值超过50的各站及检测次数应该怎么写
所需要结果为:
站名 检测次数 超标次数
张强 3 1
王冰 2 1
...全文
50 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huilei_001 2011-10-28
  • 打赏
  • 举报
回复
谢谢 你了 我已经解决了 你的解答对我帮助很大
中国风 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huilei_001 的回复:]

忘了告诉 你一声了 我用的是mysql
[/Quote]

去MY SQL问问吧,给你转过去
huilei_001 2011-10-28
  • 打赏
  • 举报
回复
忘了告诉 你一声了 我用的是mysql
huilei_001 2011-10-28
  • 打赏
  • 举报
回复
检测次数 的统计结果 不对 因为里面检测次数有空白的
中国风 2011-10-28
  • 打赏
  • 举报
回复
--> --> (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
*/
huilei_001 2011-10-28
  • 打赏
  • 举报
回复
2#结果不对
中国风 2011-10-28
  • 打赏
  • 举报
回复
select 站名,检测次数=count( 菌落值) ,超标次数=sum(case when 菌落值>50 then 1 else 0 end) from table1 group by 站名

11,849

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧