mysql 求时间段平均值
2015-06-12 22:13
633 查看
考虑下面的需求,在一段时间内,间隔一段时间,取一个平均值,把所有的平均值取出来,怎么办?
思路:在存储过程中,拼接sql语句。根据起始时间和结束时间,while循环每次加一段时间。
DROP PROCEDURE IF EXISTS `get_avg`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `get_avg`(in iStartTime datetime, in iEndTime datetime)
BEGIN
declare vSql varchar(10240) default '';
declare vNextTime datetime;
while(iStartTime < iEndTime) do
-- 每次加一个小时
set vNextTime = date_add(iStartTime,interval 3600 second);
-- 单引号是特殊字符,要表示单引号,使用 '' 进行转义
set vSql = concat(vSql,'union select 100, avg(`value`) from t1 where time between ''',iStartTime,''' and ''', vNextTime,''' ');
set iStartTime = vNextTime;
end while;
set vSql = substring(vSql,7);
-- 看看拼接的字符串是否正确
-- select vSql;
set @vSql = vSql;
prepare stmt from @vSql;
execute stmt;
deallocate prepare stmt;
END
;;
DELIMITER ;
思路:在存储过程中,拼接sql语句。根据起始时间和结束时间,while循环每次加一段时间。
DROP PROCEDURE IF EXISTS `get_avg`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `get_avg`(in iStartTime datetime, in iEndTime datetime)
BEGIN
declare vSql varchar(10240) default '';
declare vNextTime datetime;
while(iStartTime < iEndTime) do
-- 每次加一个小时
set vNextTime = date_add(iStartTime,interval 3600 second);
-- 单引号是特殊字符,要表示单引号,使用 '' 进行转义
set vSql = concat(vSql,'union select 100, avg(`value`) from t1 where time between ''',iStartTime,''' and ''', vNextTime,''' ');
set iStartTime = vNextTime;
end while;
set vSql = substring(vSql,7);
-- 看看拼接的字符串是否正确
-- select vSql;
set @vSql = vSql;
prepare stmt from @vSql;
execute stmt;
deallocate prepare stmt;
END
;;
DELIMITER ;
相关文章推荐
- mysql格式化操作
- mysql Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- mysql字符集
- mysql 内连接 左连接 右连接 外连接
- mysql 聚集函数和分组
- Ubuntu 安装mysql和简单操作
- Mysql 数据库中文乱码问题
- mysql免安装版配置
- scrapy爬虫成长日记之将抓取内容写入mysql数据库
- Mysql触发器
- hibernate+mysql时,会出现事物不管用
- Mysql的一些操作(删除表中的重复元素,查询重复元素)
- 【MySql】MySql基础使用详解
- windows上mysql常用操作
- MySQL:ERROR 2002 (HY000)
- Centeros 系统下error while loading shared libraries:libmysqlclient.so.18错误
- mysql学习课程 云课堂
- MySQL批量SQL插入性能优化
- mysql修改密码
- MySQL 中的自定义函数和存储过程 简单实例