mysql中怎么计算每行数据前五天的平均值

在ma5字段计算前四天的albvalue的平均值... 在ma5字段计算前四天的albvalue的平均值 展开
 我来答
来学习的DBA
推荐于2017-12-15 · TA获得超过298个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:209万
展开全部
这是前4天的平均值,这个update语句不太好写呀,感觉你这个表设计有点问题
select avg(albvalue) from tablename where date between date_sub(date, interval 4 day) and date;
更多追问追答
追问
这个恐怕一条sql不得行,能不能写个存储过程,把计算结果更新到ma5中
追答
有点乱,你自己看哈
declare not_exists int default 0;

declare $id int;
declare $phone varchar(50);

DECLARE $_error INT DEFAULT 0;
#定义游标接受表查询数据
declare cur1 cursor for select id,avg(phone) as ph from ht_user u
where create_date between date_sub(create_date, interval 30 day) and create_date group by id;

/**********sql查询结果异常处理**********/

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET $_error=1;

declare continue handler for not found set not_exists=1;

/*************外部参数赋值**************/
/***************开始事务****************/

#读取表中的数据循环输出
open cur1;

while(not_exists!=1) do

fetch from cur1 into $id,$phone;

update ht_user t set t.test = $phone where id = $id;

end while;

close cur1;

#2 报错处理
if($_error=1) then

rollback;
else

commit;
end if;

select $_error as errorCode;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式