如何在 Oracle 中获取每天的 select 最新值?

How to select latest value for each day in Oracle?

我有一个 table 这样的:

如何使用 sql 在 oracle 中找到每天的最新值?

我试试:

select max(datetime), amount
from ORDER_ITEMS
group by datetime, amount

但它没有给出正确答案。

可以使用ROW_NUMBER()解析函数如

SELECT datetime, amount
  FROM 
  ( SELECT datetime,
           amount,
           ROW_NUMBER() OVER(PARTITION BY TRUNC(datetime) ORDER BY datetime DESC) AS rn
      FROM order_items)
 WHERE rn = 1

如果 datetime 值可能出现联系,则更喜欢使用 DENSE_RANK() 函数而不是

SELECT datetime, amount
  FROM 
  ( SELECT datetime,
           amount,
           DENSE_RANK() OVER(PARTITION BY TRUNC(datetime) ORDER BY datetime DESC) AS dr
      FROM order_items)
 WHERE dr = 1