1、test表数据如下:
2、查询eee的suject合计值,这里使用开窗函数会把合计值填充所有行,然而我只想要显示第一条合计值,其他字段不变
3、首先在原有sql的基础上加一个count函数用来显示总共有多少条数据
4、而后在外面包一层select,使用lead位移函数
select
t.name,
t.class,
t.suject,
lead(t.req,t.cnt-1)over(partition by name order by name)req
from (
select name,
class,
suject,
sum(suject)over(partition by name order by name) req
,count(*)over(partition by name order by name)cnt
from test where name='eee'
)t;
效果如下: