当前位置: 代码迷 >> Sql Server >> 重复数据封存,并某列求和
  详细解决方案

重复数据封存,并某列求和

热度:39   发布时间:2016-04-24 10:44:25.0
重复数据保留,并某列求和
例如:
ID                  Age
1                    20
1                    30
2                    10
3                     50
3                     20


我想的到的效果
ID                  Age
1                    
1                    50
2                    10
3                     
3                     70

------解决方案--------------------
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(发粪涂墙)
-- Date    :2014-05-15 15:10:25
-- Version:
--      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 
-- Apr  2 2010 15:48:46 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([ID] int,[Age] int)
insert [huang]
select 1,20 union all
select 1,30 union all
select 2,10 union all
select 3,50 union all
select 3,20
--------------生成数据--------------------------
SELECT id,CASE WHEN id2<>1 THEN '' ELSE CAST(age AS VARCHAR(10)) END age
FROM (
SELECT  ID,(SELECT SUM(age) FROM huang WHERE id=a.id)age,ROW_NUMBER()OVER(PARTITION BY id ORDER BY id) id2
from [huang] a)a
----------------结果----------------------------
/* 
id          age
----------- ----------
1           50
1           
2           10
3           70
3           

*/
  相关解决方案