sql表中120个数据每六个求一次平均值怎么写循环语句?
发布网友
发布时间:2024-10-17 21:47
我来回答
共5个回答
热心网友
时间:2024-11-28 13:32
得用过程了,你用的什么数据库?
--好了,搞完了 oracle下的:
create or replace procere zjwp as
i number(9,3);
bbb number(9,3);
begin
i:=1;
while i<=120
loop
select avg(a) into bbb from zjw where id between i and i+5;
dbms_output.put_line(bbb);
i:=i+6;
end loop;
end;
/*有3个地方你要对应你的表改过去:
字段a, 表名zjw ,主键 id (我默认你有从1开始自增1的id了)
*/
热心网友
时间:2024-11-28 13:32
create #tmp(
data numeric(18,4)
)
declare @data numeric(18,4)
declare @sum_data numeric(18,4)
declare @i int
set @i=0
set @sum_data=0
declare C11 cursor for
select convert(numeric,data) data
from [表]
order by ...
fetch next from C11 into
@data
if @@fetch_status <> 0
begin
deallocate C11
return 0
end
while(@@fetch_status = 0)
begin
set @i=@i+1
set @sum_data=@sum_data+@data
if @i=6
begin
set @sum_data=convert(numeric(18,4),@sum_data/@i)
insert into #tmp (data)
values (@sum_data)
set @i=0
set @sum_data=0
end
fetch next from C11 into
@data
end
deallocate C11
select * from #tmp
GO
热心网友
时间:2024-11-28 13:33
什么数据库啊?如果是oracle的话,比较容易实现
select id,data,avg(data)over(partition by gp) from (
select id,to_number(data)data,((rownum-1)/6) gp from table
) t
热心网友
时间:2024-11-28 13:33
列点数据出来,确认是哪种数据库
热心网友
时间:2024-11-28 13:34
用SQL语句能求VARCHAR2的平均数?