# #sql #google-bigquery
Вопрос:
Я пытаюсь заполнить пробел в двух сценариях. Я могу сделать это с одной группой, но не уверен с несколькими
данные:
Order ID Amount 1 NULL NULL 2 A 500 3 NULL NULL 4 A 700 1 B 1000 2 NULL NULL 3 NULL NULL 4 B 1500
Целевой Результат
Order ID Amount 1 A 500 2 A 500 3 A 700 4 A 700 1 B 1000 2 B 1500 3 B 1500 4 B 1500
Ответ №1:
Рассмотрим следующий подход
select * except(amount), first_value(amount ignore nulls) over win as amount from (select distinct `order` from your_table where not `order` is null), (select distinct id from your_table where not id is null) left join your_table using(`order`, id) window win as (partition by id order by `order` rows between current row and unbounded following)
если применить к образцам данных в вашем вопросе — вывод будет
Комментарии:
1. Я применил это и получаю странный дополнительный столбец, когда пытаюсь ввести другой столбец, поэтому в дополнение к порядку, если бы был столбец шага, такой как Шаг 1 Шаг 2 Шаг 3 шаг 4 Шаг 4 Шаг 4
2. @Джастин, Это похоже на другой вопрос. Я предлагаю вам поднять для этого новый вопрос.