使用 Oracle SQL 根据时间戳提取每组的最新数据点
本指南演示了检索 Oracle 数据库中每个组的最新值的几种方法,按时间戳排序。
基本查询:
以下查询检索每个 id
的最新值及其关联的日期和数量:
<code class="language-sql">SELECT id, MAX(date) AS "DATE", MAX(quantity) AS "QUANTITY" FROM qtys GROUP BY id;</code>
方法1:按特定时间窗口(例如最后XX分钟)过滤
要将结果限制为最近 XX 分钟内的条目,请合并 WHERE
子句:
<code class="language-sql">SELECT id, date, quantity FROM qtys WHERE date > (SELECT MAX(date) - INTERVAL 'XX' MINUTE FROM qtys);</code>
方法 2:将 ID 与另一个表中的文本数据组合
要将 ID 附加到名为“idnames”的表中的相应文本,请使用以下查询:
<code class="language-sql">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>
说明性结果:
预期的输出格式类似于:
<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中文网其他相关文章!