2016-11-30 2 views
0

나는이 열을 포함하는 테이블을 가지고 있습니다.날짜 열을 기준으로 최근 3 개의 고유 가격을 얻는 방법은 무엇입니까?

  • CODE
  • 가격
  • DATE

    그래서 내가 뭘 원하는 날짜 열을 기준으로 정렬 된 ID 당 지난 3 별개의 가격 값을 얻을 수 있습니다. 기본적으로 ID 당 가장 최근의 3 가지 고유 가격.

또한 표에 ID 열이 있습니다. 테이블의 기본 키입니다.

편집 : 다음과 같이 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