如何在 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
我有一个 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