2016-03-17 1 views
0

У меня есть этот набор данных. Столбцы 1,2,3,4 и 5. Я хочу вычесть время между последовательными транзакциями только тогда, когда я вижу тип транзакции «A1». Сначала он должен проверить, изменился ли тот же идентификатор, индикатор. Если это так, то я хочу вычесть между A1 индикатора 1 и A1 индикатора 2. Если индикатор не изменился, посмотрите на идентификатор и посмотрите, не изменилось ли оно. Если это так, найдите ближайший следующий A1 и вычтите время.Вычитание временных меток при изменении нескольких столбцов и строк

Я хочу показать результат в новом столбце, как показано выше (ВРЕМЯ ПЕРЕДАЧИ, в минутах). И я использую Teradata SQL Assistant.

enter image description here

ответ

1

быть честным, я не получаю сценарий. - Каков ключ (столбцы), где выполняется поиск следующего TXN? Выполняете поиск следующего или последнего TXN?

Никогда ум:

1) Последние/предшествующая запись можно найти с помощью функции OLAP и просто использовать MIN/MAX при использовании 1 запись в окне

MAX(COL1) OVER (PARTITION BY COL_Key1, COL_Key2 ORDER BY COL_Timestamp ASC ROWS 1 PRECEDING) as COL1_Preceding 

проверка: http://www.info.teradata.com/HTMLPubs/DB_TTU_15_10/index.html#page/SQL_Reference/B035_1145_151K/Ordered_Analytical_Functions_stub.html

2) если это может быть сделано через CASE КОГДА xxx THEN xxx [КОГДА yyy THEN yyy] [ELSE zzz] END

check: http://www.info.teradata.com/HTMLPubs/DB_TTU_15_10/index.html#page/SQL_Reference/B035_1145_151K/Case_Expressions_stub.html#ww3_28_1

Смежные вопросы