sql存储过程 求平均值和总和
DELIMITER $$
DROP PROCEDURE IF EXISTS `txl`.`p1` $$
CREATE DEFINER=`tang`@`10.10.19.164` PROCEDURE `p1`(in N int)
BEGIN
declare a,b,c,d,e,h char(3) ;
declare f char(10);
declare g decimal(4,2);
set e=1;
drop table if exists zongping;
create table zongping(name char(10),id char(3),english char(3),math char(3),politics char(3),chinese char(3),Total int,aver decimal(4,2));
repeat
select english,math,Politics,chinese,name into a,b,c,h,f from students where id=e;
set d=a+b+c+h;
set g=(a+b+c+h)/4;
insert into zongping(name,id,english,math,Politics,chinese,total,aver) values( f,e,a,b,c,h,d,g );
set e=e+1;
until e=N
end repeat;
select * from zongping;
END $$
DELIMITER ;
我的这个存储过程是将数据库txl里的students表格里的数据取出来,然后添加total和aver两列,最后将这些信息都插入到zongping这个表格中。但怎么给参数N赋值呢?因为我不知道students里的学生信息由多少行啊!而且将students表格里的数据添加total和aver两列的时候必须是id有规律的每次增加1,如果id号是没规律的怎么办?请高手指点一下!
------解决方案--------------------
为什么不直接用 聚合函数 avg() 求平均值?
看上去应该一句SQL语句就可以了。
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。