【发布时间】:2018-11-13 08:04:50
【问题描述】:
我有一张表(Oracle):
price
--------
integer id (pk)
integer part_id (fk)
number amount
timestamp change_timestamp
每当零件价格发生变化时,软件(不是我的)都会在此表中添加一个新行。它没有更改数据并且每个部分只有一个条目,而是在表中添加了一个新行。然后,该软件会查找最新条目。但“旧”数据在表中徘徊。
我正在尝试编写一个查询,该查询为我提供 a) 当前(最新)价格和 b) 输入价格的日期。
我写了这个查询:
select part_id, amount, max(change_timestamp)
from price
group by part_id, amount
但这会返回该部分的每个条目,甚至是旧条目。
如何在丢弃旧的、不相关的数据的同时返回最新日期和该日期的金额?
不,要更改的不是我的数据库或我的软件。
【问题讨论】:
标签: sql oracle group-by greatest-n-per-group