》》》》》》请问如何筛选重复数据
请问有如下数据,应该怎么筛选,才能得到想要的数据
col1 col2 col3
2004.5 a 1
2004.6 a 2
2004.5 b 1
2004.6 b 3
2004.5 c 1
目标数据为
col1 col2 col3
2004.6 a 2
2004.6 b 3
2004.5 c 1
即:col2为主键,按照col1(时间类型)排序,取出col1值为最晚的时候的记录值,谢了
问题点数:20、回复次数:7Top
1 楼baresi(定海神针)回复于 2005-04-05 16:07:36 得分 0
upTop
2 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-05 16:12:12 得分 20
如果表中的数据是相同的col2,时间越晚,col3越大的话,可以这么写
Select Max(col1) As col1,col2,Max(col3) As col3 from 表 Group By col2Top
3 楼talantlee(小刀(bluedagger.cn))回复于 2005-04-05 16:12:53 得分 0
select * into #a from(select * from 表 union
select * from 表)T
drop table 表
select * into 表 from #a
drop table #a
假如你隻查詢就直接這樣可以了
select * from from(select * from 表 union
select * from 表)T
Top
4 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-05 16:20:49 得分 0
楼上
select * from from(select * from 表 union
select * from 表)T
这句话查询出来的内容和
select * from 表
有什么区别??Top
5 楼baresi(定海神针)回复于 2005-04-05 16:29:56 得分 0
to paoluo(一天到晚游泳的鱼)
筛选的时候和col3没有关系,只需要选取col1为最大的值即可。Top
6 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-05 16:34:25 得分 0
虽然没有关系,但是你筛选出来的结果有col3,所以
如果表中的数据是相同的col2,时间越晚,col3越大的话,这么写就简单些。
Select Max(col1) As col1,col2,Max(col3) As col3 from 表 Group By col2
否则的话,语句要变一下,就复杂些。Top
7 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-05 16:38:55 得分 0
如果不是那样的规律,就这么写。
select * from 表 A Where col1=(Select Max(col1) from 表 Where col2=A.col2)Top




