按时间间隔对数据库进行统计

SeanQ SeanQ 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
数据库中表有三列
ID列,[id] 主键,没有任何意义,数据库自动增长
值列,[value] 类型为float
时间列,[savetime],类型为datatime,对应值列值的时间点
表的记录可能很大,最多一年可以达到60*24*30*365=15,768,000条记录(时间列时间的间隔是一分钟),没有索引
现在要按照给定的时间间隔对表中的值列进行统计,比如说最大值,最小值和平均值,敝人想到的方法就是这样建立SQL查询语句的:
t1,t2分别查询统计的开始时间和结束时间,T查询统计时间间隔
SELECT MAX([value]) FROM tablename where [savetime] >= t1 AND [savetime] < t1+T
SELECT MAX([value]) FROM tablename where [savetime] >= t1+T AND [savetime] < t1+2T
.
.
.
SELECT MAX([value]) FROM tablename where [savetime] >= t1+nT AND [savetime] < t2
我知道这样的方法十分笨拙,效率也比较低下,达不到系统所要求的目标,所以希望能够得到大家的帮组
可能有人提出在时间了上建立索引,但由于不在万不得已的情况下,不能修改表的结构,也没有这个权限
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
SeanQ
应用实例 27,579 成员 68,540 内容