欢迎光临
我们一直在努力

统计数据的时候,经常遇到重复问题,解决方案!-数据库专栏,SQL Server

建站超值云服务器,限时71元/月

原贴:http://community.csdn.net/expert/topic/3717/3717577.xml?temp=.4141199

有这样的一张表(有三列a、b、c):
a      b      c 
1     two    2003
1     two    2005
1     two    2004
2     four   2006
3     four   2008
现在我想把a、b列有相同值的记录合成一条记录,结果集如下:
a      b      c 
1     two    2004(该值也可以取2003或2005)
2     four   2006
3     four   2008
这样的sql语句怎么写??

–测试:

create table 表(a varchar(20), b varchar(20), c varchar(20) )
insert 表 select 1,    two,   2003
union all select 1,    two,   2005
union all select 1,    two,   2004
union all select 2,    four,  2006
union all select 3,    four,  2008
go

select a,b
,(select top 1 c from 表 where a = d.a and b = d.b order by newid()) as c    
                                                                            –随机取c列的值,也可以用max(c),min(c), avg(c)
from 表 d
group by a,b  –a,b 组合分组

drop table 表

–第一次测试结果:
a                    b                    c                   
——————– ——————– ——————–
1                    two                  2004
2                    four                 2006
3                    four                 2008

(所影响的行数为 3 行)

–第二次测试结果:

a                    b                    c                   
——————– ——————– ——————–
1                    two                  2005
2                    four                 2006
3                    four                 2008

–第十次测试结果:

a                    b                    c                   
——————– ——————– ——————–
1                    two                  2003
2                    four                 2006
3                    four                 2008

(所影响的行数为 3 行)

–所有的值都是随机取的………

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 统计数据的时候,经常遇到重复问题,解决方案!-数据库专栏,SQL Server
分享到: 更多 (0)

相关推荐

  • 暂无文章