首頁  >  文章  >  資料庫  >  mysql如何求時段平均值

mysql如何求時段平均值

coldplay.xixi
coldplay.xixi原創
2020-12-15 14:12:324918瀏覽

mysql求時間段平均值的方法:首先在預存程序中,拼接sql語句;然後據起始時間和結束時間,while循環每次加一段時間;最後進行時間段平均即可。

mysql如何求時段平均值

本教學操作環境: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);
-- 单引号是特殊字符,要表示单引号,使用 &#39;&#39; 进行转义
set vSql = concat(vSql,&#39;union select 100, avg(`value`) from t1 where time between &#39;&#39;&#39;,iStartTime,&#39;&#39;&#39; and &#39;&#39;&#39;, vNextTime,&#39;&#39;&#39; &#39;);
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如何求時段平均值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn