Большой запрос - UID (ROW_NUMBER () OVER () проблема - PullRequest
0 голосов
/ 17 декабря 2018

У меня проблема с использованием ROW_NUMBER() OVER() с большим запросом.

Проблема заключается в том, что когда я создаю представление с помощью ROW_NUMBER() OVER(), оно отлично работает, НО после половиныдень - день (Мое предположение, из-за кэша) номер, сгенерированный этой командой, изменен.

Поскольку я создаю другую сплошную таблицу и все еще ссылаюсь на представление.ЧТО является лучшим способом создания ROW_NUMBER() OVER() - UID КАК твердых неизменных чисел?

Я уже пробовал - OW_NUMBER() OVER(ORDER BY DATE), но он все еще изменился.

PS Мне просто нужноUID, уникальный номер, присваиваемый каждому значению, такой же, как автоинкремент.

Спасибо.

1 Ответ

0 голосов
/ 18 декабря 2018

Мне просто нужен UID, уникальный номер, присвоенный каждому значению ...

Ниже приведено описание BigQuery Standard SQL

Вы можете попробовать использовать FARM_FINGERPRINT() функция - либо сама по себе, либо если у вас есть целые строки как дубликаты как часть OVER(ORDER BY ...)

#standardSQL
SELECT *, 
  FARM_FINGERPRINT(TO_JSON_STRING(t)) uid,
  ROW_NUMBER() OVER(ORDER BY FARM_FINGERPRINT(TO_JSON_STRING(t))) row_num
FROM `project.dataset.table` t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...