Я пытаюсь сравнить записи [N] и [N-1], Partition By c_id ORDER BY b_id DESC
. Запрос выполняется нормально, но работает очень медленно для функции ROW_NUMBER()
. самые дорогие области - поиск по индексу, сортировка по разделам и совпадение Ha sh. Есть ли способ написать запрос для повышения производительности.
Select [N].*,[N-1]* from
(
(
Select p_id,b_id,c_id,cust_name,TNP,TRQI,First_One_Latest
from (
Select p_id, b_id, c_id, cust_name, TNP, TRQI,
ROW_NUMBER() OVER (Partition By c_id ORDER BY b_id DESC) First_One_Latest
from data.Counterparty_Credit_Risk
where ISNUMERIC(c_id)=1
and cust_src_system=N'SET1'
) As FIRST
where FIRST.First_One_Latest=1
) As [N]
INNER JOIN
(
Select p_id,b_id,c_id,cust_name,TNP,TRQI,First_One_Latest
from (
Select p_id,b_id,c_id,cust_name,TNP,TRQI
,ROW_NUMBER() OVER (Partition By c_id ORDER BY b_id DESC) First_One_Latest
from data.Counterparty_Credit_Risk
where ISNUMERIC(c_id)=1
and cust_src_system=N'SET1'
) As Second
where Second.First_One_Latest=2
) As [N-1]
ON N.c_id = [N-1].c_id
)