1

如果我在查询下运行

select prod_id, date, price 
from product_price;

我得到这些正确的结果:

3  2011-02-25 14:30:24   24000

3  2013-04-12 15:58:40   28000

3  2011-04-01 00:00:00   25000

3  2012-04-13 14:53:01   26500

3  2012-05-08 12:31:01   26500

但是,当我想取回具有匹配价格的最大日期的一行时,我确实取回了最大日期列,但价格错误(24000 列),实际上应该是 28000

我试过的 SQL

select max(date), price from product_price group by prod_id;

select max(date), price 
from product_price 
group by prod_id having max(date);

两个 sql 都返回以下错误的价格结果:

3  2013-04-12 15:58:40   24000

我实际上应该得到。

3  2013-04-12 15:58:40   28000

知道如何取回与最大日期匹配的价格吗?

谢谢尼克

4

1 回答 1

2

您可以ORDER BY date DESC使用最大日期LIMIT 1来获取,如下所示:prod_id

SELECT prod_id, date, price
FROM product_price
ORDER BY date DESC
LIMIT 1;

在这里查看它的实际效果:

SQL 小提琴演示

于 2013-11-13T09:09:53.037 回答