2016-11-30 2 views
0

У меня есть таблица, которая содержит эти столбцы;Как получить последние 3 отличных цены на основе столбца даты?

  • КОД
  • ЦЕНА
  • ДАТА

    Так что я хочу сделать, это получить последние 3 отчетливый значения цен за ид упорядочены по дате столбца. В основном самые последние 3 отдельных цены за один идентификатор.

Также есть столбец идентификатора в таблице. Это первичный ключ таблицы.

Редактировать: Как сказал 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 
Смежные вопросы