從中取出所有nck相同的hweight的值,是更新到所有nck相同的數(shù)據(jù)的hweight2字段中么?
為金灣等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及金灣網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、金灣網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
這個(gè)是更新所有數(shù)據(jù)的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
這個(gè)累加可以寫在存儲(chǔ)過(guò)程中,在java中調(diào)用,也可以在java里面執(zhí)行update語(yǔ)句。
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;
結(jié)果:
如果是數(shù)據(jù)累加的話,可以通過(guò)sum函數(shù)來(lái)實(shí)現(xiàn),如果是計(jì)數(shù)的話,可以通過(guò)count來(lái)實(shí)現(xiàn)。
sql:select username ,count(accountNo) as count,sum(amount) as amount
from tablename order by username desc group by username;
以上就可以求出username下,accountNo的條數(shù)和對(duì)應(yīng)的總amount,之后通過(guò)username字段降序排序。
sum() over(partition by 字段1 order by 字段2)??
用下面這個(gè)數(shù)據(jù)集舉例。
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 默認(rèn)為升序,添加關(guān)鍵字 desc 后為降序排列。
為了更進(jìn)一步了解這個(gè)函數(shù)的工作原理,我們?cè)黾?行數(shù)據(jù)。
insert into tb values(1,5);
insert into tb values(1,7);
在執(zhí)行一次上面那個(gè)SQL語(yǔ)句:
select id,num,sum(num) over(order by num) cumsum from tb;
注意看id字段,其排序已被打亂,這是按num字段升序排列的結(jié)果,所以,參數(shù)order by 起排序作用。
select id,num,sum(num) over(partition by id order by num) from tb;
按id字段分組累加,組內(nèi)按num字段排序。
如果是數(shù)據(jù)累加的話,可以通過(guò)sum函數(shù)來(lái)實(shí)現(xiàn),如果是計(jì)數(shù)的話,可以通過(guò)count來(lái)實(shí)現(xiàn)。
sql:select username ,count(accountNo) as count,sum(amount) as amount
from tablename order by username desc group by username;
以上就可以求出username下,accountNo的條數(shù)和對(duì)應(yīng)的總amount,之后通過(guò)username字段降序排序。