我希望以最新的产品价格执行SQL输出。 product_price可以针对产品编号多次更新,因此可以创建多行。我希望每个product_number消除多个行。
SELECT
product_number
,product_price
,MAX(update_timestamp)
FROM product_price
ORDER BY 1,2
最佳答案
有两种方法可以做到这一点。我的首选是子查询。首先获取产品编号,它是maxtimestamp:
SELECT product_number
,MAX(update_timestamp) as maxtimestamp
FROM product_price
group by product_number
现在将其转换为子查询,并将其内部连接到第一个表以过滤除max之外的所有查询:
select a.product_number, a.maxtimestamp, b.product_price
from ( SELECT product_number ,MAX(update_timestamp) as maxtimestamp
FROM product_price
group by product_number) a
inner join product_price b on a.product_number = b.product_number
and a.maxtimestamp = b.update_timestamp