В принципе у меня есть следующий запрос, и я пытаюсь выделить только уникальные ряды от этого:Pivot SQL с Rank
WITH numbered_rows
as (
SELECT Claim,
reserve,
time,
RANK() OVER (PARTITION BY ClaimNumber ORDER BY time asc) as 'Rank'
FROM (
SELECT cc.Claim,
MAX(csd.time) as time,
csd.reserve
FROM ClaimData csd WITH (NOLOCK)
JOIN Core cc WITH (NOLOCK)
on cc.ClaimID = csd.ClaimID
GROUP BY cc.Claim, csd.Reserve
) as t
)
select *
from numbered_rows cur, numbered_rows prev
where cur.Claim= prev.Claim
and cur.Rank = prev.Rank -1
Результаты, я получаю следующее:
Claim reserve Time Rank Claim reserve Time Rank
--------------------------------------------------------------------
11 0 12/10/2012 1 11 15000 5/30/2013 2
34 2000 1/21/2013 1 34 750 1/31/2013 2
34 750 1/31/2013 2 34 0 3/31/2013 3
07 800000 5/9/2013 1 07 0 5/10/2013 2
Но что я хочу видеть только следующее: (устранить претензию 34 ранга 2, поскольку она не самая высокая
Claim reserve Time Rank Claim reserve Time Rank
--------------------------------------------------------------------
11 0 12/10/2012 1 11 15000 5/30/2013 2
34 750 1/31/2013 2 34 0 3/31/2013 3
07 800000 5/9/2013 1 07 0 5/10/2013 2
по использованию [кнопка Turbo] в SQL Server (http://dba.stackexchange.com/q/2684/418) Я бы поставил вам Верно. – Marian
Да! SQL Server 2008 R2 –
* "имеет 34-ю позицию 2-го разряда, потому что ее не самая высокая" * - однако вы удалили запись 34-го уровня по требованию 34 из желаемого набора результатов, который ** является ** самым высоким , Пожалуйста, уточните свой вопрос. –