sqlserver根据某一个字段进行求和运算后去掉重复的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver根据某一个字段进行求和运算后去掉重复的数据相关的知识,希望对你有一定的参考价值。

就如上表所示,需要对相同的人的score字段根据时间进行求和运算,求和完成后展示时去掉重复的人的数据,比如求2011年各人员排名,数据应该是:
张三 宝信 20
李四 宝信 10
其它字段可以忽略,保留一个就行
急求!多谢各位数据帝啊!!!
最后只剩30财富值了.....大家见谅
我这里写了一个查询,但是查出来的数据只是针对求和运算的,无法进行去重操作,大家可以帮我修正下,多谢了!
select name,time_,score,sum(score) over (partition by name) sum_score_by_name
from ccewis.T_LQYJ_INFO t where t.time_ like '2011%'
ORDER BY sum_score_by_name DESC

这个查询查出的数据是:

参考技术A 你的time,不一样。如果去掉重复的。是time这个字段不要,还是要哪一条数据?

你用的开窗函数,一般都是用来做排序的,去掉重复的,还是要用分组。
参考技术B select name ,company,DATEPART(yyyy,time),sum(score)
from table
group by name ,company,DATEPART(yyyy,time)
order by DATEPART(yyyy,time),name ,company

sum()over()的作用,是不改变原来数据条数基础上求和。追问

我试了下,貌似查出来的数据是全部的表数据,time_字段不是DATE类型

追答

where t.time_ like '2011%' 你只需要2011的,就加上这个呗

select name ,company,substring(time_,1,4), sum(score)
from taccewis.T_LQYJ_INFO
where time_ like '2011%'
group by name ,company,substring(time_,1,4)
order by substring(time_,1,4),name,company

sqlserver查询字段里面如何去除空格

select Rtrim(column) from table --去掉右边空格
select Ltrim(column) from table --去掉左边空格
select replace(column,' ','') from table --去掉所有空格
参考技术A select replace( 字段名, ' ','') from TableName

以上是关于sqlserver根据某一个字段进行求和运算后去掉重复的数据的主要内容,如果未能解决你的问题,请参考以下文章

SqlServer中的数据根据该表中某字段的值的结果决定是不是显示

怎么判断sql server中某字段含空格

sqlserver查询字段里面如何去除空格

Oracle sql语句把字段中的某个字符去掉

sql实现多字段求和并查询

sqlserver分区表,可以不可以同时根据某几个字段分区