SQL查询 - 查找过去5个月内最大的价格差异

时间:2016-11-29 21:38:36

标签: mysql

找出过去5个月中最大的价格跳跃/差异。 我有一个Price_Change表,其中包含Product_ID,Price和Date(更改时间戳)。

我试图获得过去5个月价格变化的所有结果:

SELECT Price, date 
FROM Price_Change
WHERE date >= DATEADD(MONTH, -5, GETDATE())

然而,我很难理解如何计算最大的价格变化并对所有产品进行比较。我想我必须得到每个产品的最大值和最小值,然后相互减去,然后对变化进行排序。

任何帮助?

1 个答案:

答案 0 :(得分:0)

因此,如您所建议的那样,按价格变动降低每个产品订单的最大价格减去该日期范围内的最低价格,并将结果限制为1.

您缺少的密钥是按照该价格排序结果(排名),并限制为1.我使用您的日期逻辑where子句,所以如果它是这样的话对您的环境无效! :P

   SELECT PC.Product_ID, Max(PC.Price) - Min(PC.Price) as PriceVar
   FROM Price_Change PC
   WHERE PC.date >= DATEADD(MONTH, -5, GETDATE())
     and PC.Product_Id = PCa.Product_Id
   GROUP BY PC.Product_ID
   ORDER BY PriceVar dec
   LIMIT 1