# #google-bigquery
Вопрос:
У меня есть таблица, как показано ниже:
Идентификатор клиента | Порядок | Код транзакции | Код транзакции |
---|---|---|---|
123123123 | ABC-1234 | нулевой | нулевой |
123123123 | XYZ-123 | нулевой | нулевой |
123123123 | DEF-456 | нулевой | нулевой |
123123123 | HYT-111 | 12a8ksabbc | 999123хххх11 |
123123123 | ZZZ-999 | нулевой | нулевой |
333333334 | XYC-777 | нулевой | нулевой |
333333334 | XYZ-331 | нулевой | нулевой |
333333334 | XYZ-334 | 13a7kcssaf | нулевой |
333333334 | XYZ-655 | нулевой | 76612ыыяс33 |
Я хотел бы распространить существующее значение в столбце transactionSubCode на все нулевые значения одного и того же столбца на основе столбца с одинаковым значением, которым в нашем случае является идентификатор клиента. Таким образом, в итоговой таблице будут результаты, как показано ниже:
Идентификатор клиента | Порядок | Код транзакции | Код транзакции |
---|---|---|---|
123123123 | ABC-1234 | нулевой | 999123хххх11 |
123123123 | XYZ-123 | нулевой | 999123хххх11 |
123123123 | DEF-456 | нулевой | 999123хххх11 |
123123123 | HYT-111 | 12a8ksabbc | 999123хххх11 |
123123123 | ZZZ-999 | нулевой | 999123хххх11 |
333333334 | XYC-777 | нулевой | 76612ыыяс33 |
333333334 | XYZ-331 | нулевой | 76612ыыяс33 |
333333334 | XYZ-334 | 13a7kcssaf | 76612ыыяс33 |
333333334 | XYZ-655 | нулевой | 76612ыыяс33 |
Я пробовал самостоятельно объединяться с различными подходами, но так и не смог получить желаемый результат в любом случае.
Ответ №1:
Вы можете использовать функцию окна:
select t.* (except transactionSubCode),
max(transactionSubCode) over (partition by customerId) as transactionSubCode
from t;
Комментарии:
1. Этот ответ, сэр, был очень быстрым. Спасибо!