求教,从表中取出距当前时间最近的一组设备

ww0821 交运集团 移动客户端工程师  2013-07-02 10:21:09
有一张,每30秒记录一次一组设备(100台左右)当前的状态,能够保存一月设备的数据。请问我想从中取出离当前时间最近的这组设备的状态,应该怎么取?表中设备号,状态,记录时间等字段。
...全文
132 13 点赞 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shy315 2013-07-04
select * from t a where a.记录时间>(sysdate-肯定有值的时间范围)
 not exists(select 1 from t b where b.设备号=a.设备号 and b.记录时间<a.记录时间)
或者
select * from t a where (a.设备号,a.记录时间) in (select 设备号,max(记录时间) from t)
有(设备号,记录时间)索引的话,应该很快
  • 打赏
  • 举报
回复
ww0821 2013-07-03
引用 11 楼 u010412956 的回复:
[quote=引用 9 楼 ww0821 的回复:] [quote=引用 3 楼 u010412956 的回复:] select * from ( select t.*,row_number(partition by 设备号 order by 记录时间 desc) rn from t ) where rn=1
报错了 ora-00907:缺失右括号[/quote] 手打的,sorry select * from ( select t.*,row_number() over(partition by 设备号 order by 记录时间 desc) rn from t ) where rn=1[/quote] 谢谢, 比我写的效率高很多,3.312秒执行完。我那个5秒多。 想要个2秒之内完成不知道有没有
  • 打赏
  • 举报
回复
hh7yx 2013-07-03
引用 9 楼 ww0821 的回复:
[quote=引用 3 楼 u010412956 的回复:] select * from ( select t.*,row_number(partition by 设备号 order by 记录时间 desc) rn from t ) where rn=1
报错了 ora-00907:缺失右括号[/quote] 手打的,sorry select * from ( select t.*,row_number() over(partition by 设备号 order by 记录时间 desc) rn from t ) where rn=1
  • 打赏
  • 举报
回复
ww0821 2013-07-03
对啊,我想要最快的,我查出来是5秒多,想优化到2秒
  • 打赏
  • 举报
回复
ww0821 2013-07-03
引用 3 楼 u010412956 的回复:
select * from ( select t.*,row_number(partition by 设备号 order by 记录时间 desc) rn from t ) where rn=1
报错了 ora-00907:缺失右括号
  • 打赏
  • 举报
回复
ww0821 2013-07-03
3楼的回复报错啊,ora-00907:缺失右括号
  • 打赏
  • 举报
回复
hh7yx 2013-07-02
select * from ( select t.*,row_number(partition by 设备号 order by 记录时间 desc) rn from t ) where rn=1
  • 打赏
  • 举报
回复
hh7yx 2013-07-02
select * from ( select t.*,row_number(partition by 设备号 order by 记录时间) rn from t ) where rn=1
  • 打赏
  • 举报
回复
yinan9 2013-07-02
max(记录时间) 不行吗?
  • 打赏
  • 举报
回复
fuheng 2013-07-02
row_number over(partition by 设备号 order by 记录时间 desc) rn from t ,应该是这个吧?
  • 打赏
  • 举报
回复
fuheng 2013-07-02
max 和row_number都可以,求最优解决方案
  • 打赏
  • 举报
回复
fuheng 2013-07-02
好吧,我也在关注这问题
  • 打赏
  • 举报
回复
sych888 2013-07-02
max(时间)......
  • 打赏
  • 举报
回复
相关推荐
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2013-07-02 10:21
社区公告
暂无公告