sqlserver 单独一列重复数据只显示那一列的第一条其余为空

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;

 效果如下:

猜你喜欢

转载自blog.csdn.net/qq_38892977/article/details/120867595