日期:2014-05-16  浏览次数:20814 次

sql去重复查询最小的一条数据
 
如图有一张表,我想在ArriveCode重复的情况下,只保留NFare最下的那条记录,请问大侠们该怎么写?
------解决方案--------------------
SELECT id,nfare,fromcode,arriveCode
FROM (
SELECT *,ROW_NUMBER()OVER(PARTITION BY arriveCode ORDER BY GETDATE())oid
FROM TB )a
WHERE oid=2

例子比较特殊,不知道你的重复值有多少个,我这里做了两个假设:
1、重复值最多2个。
2、你的数据没有任何排序,如果有,上面代码中的order by的列就按照你的排序字段来写