提取 Oracle SQL 中每个组的最新条目
本教程演示了一个常见的数据库任务:根据时间戳检索每个组的最新记录。 我们将使用包含 ID、时间戳和数量的表作为示例。
挑战:
给定一个包含 ID、时间戳(“日期”)和数量(“数量”)列的表,我们如何有效地为每个唯一 ID 选择最新数量(及其关联的时间戳)?
解决方案:
这可以通过以下方法来实现:
以下 Oracle SQL 查询实现了此解决方案:
<code class="language-sql">SELECT x.id, x."date", x.quantity FROM ( SELECT id, "date", RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk, quantity FROM qtys ) x WHERE x.rnk = 1;</code>
扩展查询:
可以调整此基本查询以满足更复杂的需求:
WHERE
子句,将结果限制在特定时间段内。id
列来集成来自其他表的数据。 例如,您可以连接到包含 ID 和名称的表,以在输出中包含名称。此方法提供了一种基于 Oracle SQL 中时间戳检索每组最新值的稳健且高效的方法,适用于各种数据分析和操作任务。
以上是如何在Oracle SQL中根据时间戳检索每个组的最新值?的详细内容。更多信息请关注PHP中文网其他相关文章!