В настоящее время я пытаюсь дедуплицировать строки в Google BigQuery для одной из моих таблиц. По сути, у меня есть таблица, в которой есть строки, содержащие повторяющиеся значения, за исключением одного столбца. Один из примеров:
Обратите внимание, что все столбцы, кроме столбца "Название группы объявлений", совпадают. Я хотел бы сделать следующее: сохранить одну строку (неважно, какая), если все столбцы одинаковы , но название группы объявлений столбцов отличается .
Я думал о создании разделов и использовании функции ранга для обозначения различных значений в этом разделе. Что-то вроде:
RANK() OVER (PARTITION BY Adgroup ID, date, Sales, Cost ORDER BY Ad group name) AS rank
Теоретически (хе-хе) это должно привести к чему-то вроде:
Используя это, я мог бы отфильтровать новый подзапрос с использованием WHERE Rank = 1
. В этом случае все дублирующиеся строки будут удалены.
Однако я обнаружил, что BigQuery не поддерживает использование FLOAT64 для разделения, поэтому мое решение не работает. Кроме того, я думаю, что есть лучший способ сделать это, но я не могу понять, как это сделать. Какую функцию в BigQuery я могу использовать специально для этого?