欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

select出反复的数据,有没办法只保留最近的一条记录

更新时间: 2014-01-05 02:13:09 责任编辑: Author_N1

 

select出重复的数据,有没办法只保留最近的一条记录
select name,  result , changedate from t
取出来的name可能有相同的,这种情况下有没办法根据changedate这条数据的插入时间,只取出最近的一条记录呢?
--参考方法--
select name,result,changedate from t a where not exists (
  select name,result,changedate from t b where a.name=b.name and a.changedate<b.changedate)
--参考方法--
select name,result,changedate 
from t 
where (name,changedate) in (select name,max(changedate) from t group by name);

--参考方法--

select *
  from (select name,
               result,
               changedate row_number() over(partition by name order by changedate desc) as_level
          from t) temp
 where temp.as_level = 1

--参考方法--
select *
  from (select name,
               result,
               changedate row_number() over(partition by name order by changedate desc) as_level
          from t) temp
 where temp.as_level = 1
这个oracle的分析函数 根据changedate 倒序排序 就去最近的一条 
--参考方法--
over(partition by name order by changedate desc)
--参考方法--
使用over(partion by....) 此语法满足你的要求
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:13:09
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7130/
本文WWW.DOC100.NET DOC100.NET版权所有。