| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1839 人关注过本帖
标题:关于一个统计个数的查询问题
只看楼主 加入收藏
biddqjh
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-4-14
收藏
 问题点数:0 回复次数:3 
关于一个统计个数的查询问题
请问各位高手,有以下一个ACCESS表怎么统计一个时间段每个故障发生的次数,关键问题是相同故障5分钟以内重复出现只记一次,希望高手指教,非常感谢!!


时间                     故障名称
2012-9-10 12:00        aaaa
2012-9-10 12:01        aaaa
2012-9-10 12:01        aaaa
2012-9-10 13:02        asvds
2012-9-11 14:02        vvv
2012-9-12 14:02        vvv
2012-9-13 15:02        few
2012-9-14 16:02        dq
2012-9-15 17:02        aaaa
搜索更多相关主题的帖子: 时间段 统计 
2012-09-23 20:31
wumingchenxi
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:96
专家分:457
注 册:2012-6-6
收藏
得分:0 
5分钟以内重复出现只记一次?
2012-10-01 16:47
wumingchenxi
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:96
专家分:457
注 册:2012-6-6
收藏
得分:0 
5分钟以内重复出现只记一次?
如果固定的5分钟计算,也就是说 第0分钟到第5分钟以内只有1次的话,还是有可能用一句SQL来实现的。
意思是第4分钟,与第6分钟发生同样的故障算2次。这样次数与系统的外部数据,0-5 ,5--10,10--15 相关。
select format(time1,"yyyy/MM/dd HH"), count(name1) from (select first(time) as time1,name as name1 from tab1 group by CDate(Format(time(),"yyyy/mm/dd hh:")+CStr(CInt(Minute(time())/5)*5),name) as tab2 group by name1,format(time1,"yyyy/MM/dd HH");
内层是先把时间分组,都分到各自所属的5 分钟段,然后,分组统计,把该5分钟段内的重复给过滤掉,成为tab2,然后再根据一个小时分组统计。
当然这个一个小时可以根据你的需要改为其他的时间段。



2012-10-01 17:21
wumingchenxi
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:96
专家分:457
注 册:2012-6-6
收藏
得分:0 
如果这个5分钟是指前后数据相差5分钟,这就比较麻烦了,因为所有的数据都和它前面的数据相关。这样的话,就不好用一句SQL来实现了。
可以先执行写一个程序,取出所有的数据,看看这个数据的前面5分钟是否出现过,也就是它自己是否有效。把所有的数据都做上标记。需要一个字段。然后再分组统计,那时就比较简单了。
2012-10-01 17:25
快速回复:关于一个统计个数的查询问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035673 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved