从中取出所有nck相同的hweight的值,是更新到所有nck相同的数据的hweight2字段中么?
为金湾等地区用户提供了全套网页设计制作服务,及金湾网站建设行业解决方案。主营业务为成都网站设计、成都网站建设、金湾网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
这个是更新所有数据的hweight2为hweight的累加。
update tab a set hweight2=(select sum(hweight) from tab b where a.nck=b.nck group by nck);
更新hweight3的值
update tab a set hweight3=hweight1-hweight-hweight2;
取值。
select hweight2,hweight3 from tab
这个累加可以写在存储过程中,在java中调用,也可以在java里面执行update语句。
declare
i int:=1;
j int:=0;
begin
while i=100
loop
j:=j+i;
i:=i+1;
end loop;
Dbms_Output.Put_Line(j);
end;
declare
N1 number:=0;
N2 number:=0;
begin
for N2 in 1 .. 50 loop
N1:=N1+N2;
end loop;
dbms_output.put_line('和为'||N1);
end;
结果:
如果是数据累加的话,可以通过sum函数来实现,如果是计数的话,可以通过count来实现。
sql:select username ,count(accountNo) as count,sum(amount) as amount
from tablename order by username desc group by username;
以上就可以求出username下,accountNo的条数和对应的总amount,之后通过username字段降序排序。
sum() over(partition by 字段1 order by 字段2)
用下面这个数据集举例。
create table tb(id int ,num ,int);
insert into tb values(1,2);
insert into tb values(2,3);
insert into tb values(3,4);
insert into tb values(4,5);
insert into tb values(5,6);
select id,num,sum(num) over(order by num) cumsum from tb;
order by 默认为升序,添加关键字 desc 后为降序排列。
为了更进一步了解这个函数的工作原理,我们增加2行数据。
insert into tb values(1,5);
insert into tb values(1,7);
在执行一次上面那个SQL语句:
select id,num,sum(num) over(order by num) cumsum from tb;
注意看id字段,其排序已被打乱,这是按num字段升序排列的结果,所以,参数order by 起排序作用。
select id,num,sum(num) over(partition by id order by num) from tb;
按id字段分组累加,组内按num字段排序。
如果是数据累加的话,可以通过sum函数来实现,如果是计数的话,可以通过count来实现。
sql:select username ,count(accountNo) as count,sum(amount) as amount
from tablename order by username desc group by username;
以上就可以求出username下,accountNo的条数和对应的总amount,之后通过username字段降序排序。