统计数据的时候,经常遇到重复问题,解决方案!
发表于:2007-07-02来源:作者:点击数:
标签:
原贴: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
原贴: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 行)
--所有的值都是随机取的.........
原文转自:http://www.ltesting.net