2016-11-29 27 views
1

查找過去5個月中最大的價格跳躍/差異。 我有一個Price_Change表,其中包含Product_ID,Price和Date(更改時間戳)。SQL查詢 - 查找過去5個月中最大的價格差異

我試圖讓價格變動的所有結果去年5月份:

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

不過,我很爲難如何計算最大的價格變化和對所有的產品進​​行比較。我想我必須得到每種產品的最大值和最小值,並相互減去然後對變化進行排序。

任何幫助?

+0

GETDATE適用於sql server而不適用於mysql – Mihai

+0

您是否在尋找每日之間的價格跳轉?請在您的要求中更清楚。至於最大,這是指最大的50%,前10名? –

+0

Price_Change記錄在隨機時間不定期發生的價格變化。在過去的5個月內,我需要找到價格變化最大的產品,我認爲這只是過去5個月的最低價格,再過去四個月的最高價格減去。我想我會按product_ID降序排列並限制爲1,這樣只有一條記錄顯示 – Kate

回答

0

所以你建議把最高價減去分鐘的價格在該日期範圍由pricevariance遞減每個產品訂單和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