案例分析:
现在要查询一个表单里面的运费结果,但是他还有分录,为了显示分录,必须把表头显示出来,问题是,他要查询运费的合计,
但是这样就会导致重复行也加进去了,这样显然数据不准,为此,可以把重复的行设置为0.
方法:
row_number()over(partition by 字段 order by 字段)ID
相当于把一个字段来分组,然后对于这个字段而言,相当于单独字段ID,分别设置值为1,2,3,4,5,排序,有点类似rownum,我们可以把ID字段不等于1的设置为0,这样就不会
重复了。
先创建一个表d,并且插入数据。
create table d ( a1 int , b1 int, c1 int , d1 int )
insert into d values(2,4,6,7);
insert into d values(2,4,6,7);
insert into d values(2,4,6,7);
insert into d values(2,4,6,7);
insert into d values(2,4,6,7);
第二部,创建一个表e,用来存储d的数据
create table e ( a1 int , b1 int, c1 int , d1 int, d2 int )
insert into e
select a,b,c,d,row_number()over(partition by b order by b)ID
from d
得出结果:
更新数据:
'
得出结果: