首页 > 数据库 > mysql教程 > 如何根据时间检索Oracle SQL中每组的最新值?

如何根据时间检索Oracle SQL中每组的最新值?

Mary-Kate Olsen
发布: 2025-01-21 15:31:09
原创
288 人浏览过

How to Retrieve the Latest Values Per Group in Oracle SQL Based on Time?

使用 Oracle SQL 根据时间戳提取每组的最新数据点

本指南演示了检索 Oracle 数据库中每个组的最新值的几种方法,按时间戳排序。

基本查询:

以下查询检索每个 id 的最新值及其关联的日期和数量:

SELECT id, MAX(date) AS "DATE", MAX(quantity) AS "QUANTITY"
FROM qtys
GROUP BY id;
登录后复制

方法1:按特定时间窗口(例如最后XX分钟)过滤

要将结果限制为最近 XX 分钟内的条目,请合并 WHERE 子句:

SELECT id, date, quantity
FROM qtys
WHERE date > (SELECT MAX(date) - INTERVAL 'XX' MINUTE FROM qtys);
登录后复制

方法 2:将 ID 与另一个表中的文本数据组合

要将 ID 附加到名为“idnames”的表中的相应文本,请使用以下查询:

SELECT t1.id || '-' || t2.idname AS "ID-IDNAME",
       MAX(t1.date) AS "DATE",
       MAX(t1.quantity) AS "QUANTITY"
FROM qtys t1
INNER JOIN idnames t2 ON t1.id = t2.id
GROUP BY t1.id;
登录后复制

说明性结果:

预期的输出格式类似于:

<code>ID-IDNAME  DATE                QUANTITY
---------- ------------------- ----------
1-testid1  2010-01-04 11:00        152
2-testid2  2010-01-04 11:00        210
3-testid3  2010-01-04 10:30        214
4-testid4  2010-01-04 10:45        122</code>
登录后复制

以上是如何根据时间检索Oracle SQL中每组的最新值?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板