【发布时间】:2013-12-31 15:35:59
【问题描述】:
我正在寻找当前价格最高的 20 种产品。
我有一个包含许多价格表的产品表。
产品:id
价格:id、product_id、value、change_date
这是一个例子。
Product: 1
price: 11, change_date 12/1/2013, value: $10
price: 12, change_date 11/1/2013, value: $15
Product: 2
price: 21, change_date: 12/1/2013, value: $12
price: 22, change_date: 11/1/2013, value: $10
Product: 3
price: 31, change_date: 11/1/2013, value: $20
“当前”价格最高的产品是 3,比 2,比 1
我将如何在 MySQL 中执行此操作?
我尝试了以下方法,但值列与 max(change_date) 行关联的值不匹配。所以排序结果被破坏了。
SELECT id, product_id, price, max(change_date)
FROM prices
GROUP BY product_id
ORDER BY value DESC
LIMIT 20
谢谢!
【问题讨论】:
-
幸运的是,这个问题每天都会被问到
-
@Strawberry,然后标记为 dup 和 ref,不是吗?
-
groupwise-maximum?不应该是greatest-n-per-group吗? -
同一个东西!?!?
-
是同一个家庭。这就是我的意思