加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle SQL查询:根据时间检索每组的最新值

发布时间:2020-12-12 13:48:04 所属栏目:百科 来源:网络整理
导读:我在Oracle数据库中有下表 id date quantity1 2010-01-04 11:00 1522 2010-01-04 11:00 2101 2010-01-04 10:45 1322 2010-01-04 10:45 3184 2010-01-04 10:45 1221 2010-01-04 10:30 13 2010-01-04 10:30 2142 2010-01-04 10:30 55154 2010-01-04 10:30 210
我在Oracle数据库中有下表
id     date              quantity
1      2010-01-04 11:00  152
2      2010-01-04 11:00  210
1      2010-01-04 10:45  132
2      2010-01-04 10:45  318
4      2010-01-04 10:45  122
1      2010-01-04 10:30  1
3      2010-01-04 10:30  214
2      2010-01-04 10:30  5515
4      2010-01-04 10:30  210

现在我想要检索每个id的最新值(及其时间).示例输出:

id     date              quantity
1      2010-01-04 11:00  152
2      2010-01-04 11:00  210
3      2010-01-04 10:30  214
4      2010-01-04 10:45  122

我只是无法弄清楚如何将它放入查询中…

另外以下选项会很好:

选项1:查询只能返回最后XX分钟的值.

选项2:该id应与具有id和idname的另一个表的文本连接. id的输出应该是:id-idname(例如1-testid1).

非常感谢任何帮助!

给定这个数据…
SQL> select * from qtys
  2  /

        ID TS                      QTY
---------- ---------------- ----------
         1 2010-01-04 11:00        152
         2 2010-01-04 11:00        210
         1 2010-01-04 10:45        132
         2 2010-01-04 10:45        318
         4 2010-01-04 10:45        122
         1 2010-01-04 10:30          1
         3 2010-01-04 10:30        214
         2 2010-01-04 10:30       5515
         4 2010-01-04 10:30        210

9 rows selected.

SQL>

…以下查询给出你想要的…

SQL> select x.id
  2,x.ts as "DATE"
  3,x.qty as "QUANTITY"
  4  from (
  5      select id
  6,ts
  7,rank () over (partition by id order by ts desc) as rnk
  8,qty
  9      from qtys ) x
 10  where x.rnk = 1
 11  /

        ID DATE               QUANTITY
---------- ---------------- ----------
         1 2010-01-04 11:00        152
         2 2010-01-04 11:00        210
         3 2010-01-04 10:30        214
         4 2010-01-04 10:45        122

SQL>

关于您的额外要求,您可以向外部WHERE子句应用其他过滤器.类似地,您可以将其他表连接到内联视图,就像其他表一样.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读