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 DESCLIMIT 1取得できます。prod_id

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

ここで実際にそれを見てください:

SQL フィドルのデモ

于 2013-11-13T09:09:53.037 に答える