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

ww0821 2013-07-02 10:21:09
有一张,每30秒记录一次一组设备(100台左右)当前的状态,能够保存一月设备的数据。请问我想从中取出离当前时间最近的这组设备的状态,应该怎么取?表中设备号,状态,记录时间等字段。
...全文
156 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
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秒之内完成不知道有没有
u010412956 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:缺失右括号
u010412956 2013-07-02
  • 打赏
  • 举报
回复
select * from ( select t.*,row_number(partition by 设备号 order by 记录时间 desc) rn from t ) where rn=1
u010412956 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(时间)......

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧