Что RESET КОГДА делает в Teradata?
Сбрасывает накопление окна, когда условие истинно.Множество примеров этого в действии в сети, но в вашем случае, я думаю, (никогда не видел, чтобы он использовался с max), он эффективно определяет точку, с которой вычисляется max, и каждый раз, когда встречается txid, отсутствующий в данном списке.это заставляет макс рассчитываться только из этой точки
Я также был не уверен, почему это не было разделено на PARTITION BY Y.ACCT_DIM_NB, Y.DAY_TIME_DIM_NB BY Y.DAY_TIME_DIM_NB, Y.TXN_POSTING_SEQ.
Почему вы думаете, что это должно?Раздел и порядок очень разные.Если у вас была банковская система, вы могли бы разбивать счета по счетам, но заказывать транзакции по дате, если вы готовите выписку по счету.
Кроме того, строки между несвязанными PRECEDING и CURRENT ROW просто используют целое разделенное на частиwindow?
Определяет сегмент записей, в которые должен обратиться аккумулятор, чтобы получить свой ответ.В вашем случае макс рассчитывается только по предыдущим строкам.Неограниченное предшествующее средство (все строки с начала раздела).Текущий ряд означает именно это.Другими допустимыми примерами могут быть:
ROWS BETWEEN 200 preceding and current row
ROWS BETWEEN 10 preceding and 20 following
ROWS BETWEEN current row and unbounded following
Поскольку ваше окно определено как только предыдущие строки, максимум будет придерживаться любого заданного максимального значения при увеличении порядка строк, пока в данных не появится новый максимум.Например:
Data,max
3,3
2,3
1,3
4,4
1,4
3,4
1,4
5,5
4,5
2,5
4,5
9,9
5,9
Когда вы продолжаете сверху вниз, как только в текущей строке обнаруживается максимальный максимум, превышающий известный максимум, он становится новым максимумом.Без ограничения только предыдущих строк, если весь набор данных был максимизирован, то максимальный отчет будет равен 9 для каждой строки