У меня есть запрос на SQL сервере, где я использую MAX OVER Partition BY
.
MAX(Duration) OVER (PARTITION BY [Variable8]
ORDER BY [RouterCallKeySequenceNumber] ASC) AS MaxDuration
Я хотел бы реализовать это в ETL с использованием служб SSIS.
Для реализации я попытался реализовать аналогично тому, как мы можем реализовать номер строки.
Я добавил преобразование SORT и отсортировал по Variable8 и RouterCallKeySequenceNumber, а затем добавил преобразование Script.
string _variable8 = "";
int _max_duration;
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
_max_duration = Row.Duration;
if (Row.Variable8 != _variable8)
{
_max_duration = Row.Duration;
Row.maxduration = _max_duration;
_variable8 = Row.Variable8;
}
else
{
if (Row.Duration >= _max_duration)
{
Row.maxduration = _max_duration;
}
}
}
Это данные, которые у меня есть -
Variable8 RouterCallKeySequenceNumber Duration
153084-2490 0 265
153084-2490 1 161
153084-2490 2 197
Мне нужно следующее решение:
Variable8 RouterCallKeySequenceNumber Duration Max Duration
153084-2490 0 265 265
153084-2490 1 161 265
153084-2490 2 197 265
Но это не возвращает желаемого значения.
Буду признателен, если вы сможете оказать какую-либо помощь.
Спасибо