2016-11-30 49 views
0

我有一個表,其中包含這些列;如何根據日期列獲取最後3個不同的價格?

  • CODE
  • 價格
  • DATE

    所以我想要做的是讓每個ID按日期列排序最後3 不同價值。基本上每個ID最近3個不同的價格。

此外,表中還有一個ID列。這是表格的主要關鍵。

編輯:正如ughai所說,DISTINCT不適用於row_number。 Here is the result set when i execute the cte block.

+1

指定樣本數據和預期結果 – Mansoor

+0

我認爲ID不是主鍵? –

+0

您似乎允許重複的日期值。如果在少於3個不同日期值的情況下有超過3個不同的價格值,應得到什麼結果? –

回答

0
Select t.id , c.Price 
from TableName t 
    CROSS APPLY (
       SELECT TOP 3 Price 
       FROM TableName s 
       WHERE s.ID = t.ID 
       ORDER BY [DATE] DESC 
       ) c (Price) 
GROUP BY t.id , c.Price 
相關問題