Есть ли способ использовать ведущую функцию, чтобы я мог получить следующую строку, где что-то изменилось, в противоположность тому, где это то же самое?TSQL - LEAD для следующей разной строки
В этом примере RowType может быть «in» или «out», для каждого «in» мне нужно знать следующий RowNumber, где он стал «out». Я играю с ведущей функцией, так как это очень быстро, однако я не смог заставить ее работать. Мне просто нужно сделать следующее: это раздел с помощью RowType, который не является в текущей строке.
select
RowNumber
,RowType --In this case I am only interested in RowType = 'In'
, Lead(RowNumber)
OVER (partition by "RowType = out" --This is the bit I am stuck on--
order by RowNumber ASC) as NextOutFlow
from table
order by RowNumber asc
Заранее спасибо за любую помощь
Использование внешнего применения Процесс занимает примерно 2 часа, тогда как если бы ведущая функция могла работать, это может потребоваться только несколько секунд. (Использование ввода только для получения следующей строки в настоящее время занимает 4 в моем наборе данных). – SomeGuy30145
@ SomeGuy30145 Я не ожидал, что внешние приложения будут применяться так долго - могу ли я спросить, насколько большой набор данных, с которым вы работаете? Я не мог придумать способ использовать 'lead()', чтобы сделать это, хотя, возможно, это возможно. – jpw
Примерно 2 миллиона строк – SomeGuy30145