оператор выбора для возврата значения из другой строки - PullRequest
1 голос
/ 04 ноября 2019

У меня есть запрос на выборку, который возвращает эти результаты:

Transaction  Type   Value
-----------  ----   -----
1            A      Null
1            A      Null
1            B      1234
2            A      Null
2            A      Null
2            B      4321

Как бы я сформировал его так, чтобы нулевые значения из типа A получили замену значением в типе B? Чтобы получить этот результат:

Transaction  Type  Value
-----------  ----  -----
1            A     1234
1            A     1234
1            B     1234
2            A     4321
2            A     4321
2            B     4321

1 Ответ

1 голос
/ 04 ноября 2019

Вы можете использовать оконные функции:

select transaction, type, value,
       max(case when type = 'b' then value end) over (partition by transaction) as new_value
from t;

Если вы просто хотите не-1004 * значение для транзакции:

select transaction, type, value,
       max(value) over (partition by transaction) as new_value
from t;
...