如何根据日期列获得最后3个不同的价格?

时间:2016-11-30 07:01:07

标签: sql sql-server tsql greatest-n-per-group

我有一个包含这些列的表格;

  • CODE
  • PRICE
  • DATE

    所以我想要做的是获得按日期列排序的每个ID的最后3个不同价格值。基本上每个身份最近3个不同的价格。

表中还有一个ID列。它是表格的主键。

编辑:正如ughai所说,DISTINCT并不适用于row_number。 Here is the result set when i execute the cte block.

1 个答案:

答案 0 :(得分: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