微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql如何求时间段平均值

MysqL求时间段平均值的方法:首先在存储过程中,拼接sql语句;然后据起始时间和结束时间,while循环每次加一段时间;最后进行时间段平均即可。

本教程操作环境:windows7系统、MysqL8.0.22版,Dell G3电脑。

MysqL求时间段平均值的方法

思路:在存储过程中,拼接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教程(视频)

原文地址:https://www.jb51.cc/mysql/1208768.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐