Уникальный номер строки на дату с разделом - PullRequest
1 голос
/ 18 июня 2019

У меня есть данные, содержащие коды продуктов и даты, когда данные были обновлены, я бы хотел пронумеровать строки для каждого кода продукта, чтобы я мог выбрать только самое последнее обновление.

Я попробовал следующий код:

SELECT
ChangedDateTime,
ROW_NUMBER() OVER(PARTITION BY ProductCode, ChangedDateTime ORDER BY ChangedDateTime DESC) change_id,
ProductCode
FROM `dataset.table`

Но возвращается:

Row ChangedDateTime change_id   ProductCode
1   2019-06-06 08:08:01.510 UTC 1   A11
2   2019-06-05 08:08:01.510 UTC 2   A11
3   2019-06-04 16:02:13.087 UTC 1   A11
4   2019-06-05 08:08:01.510 UTC 1   A110
5   2019-06-04 16:02:13.087 UTC 1   A110
6   2019-06-04 14:36:54.930 UTC 1   A110

Когда я ожидал увидеть: L

Row ChangedDateTime change_id   ProductCode
1   2019-06-06 08:08:01.510 UTC 1   A11
2   2019-06-05 08:08:01.510 UTC 3   A11
3   2019-06-04 16:02:13.087 UTC 2   A11
4   2019-06-05 08:08:01.510 UTC 1   A110
5   2019-06-04 16:02:13.087 UTC 2   A110
6   2019-06-04 14:36:54.930 UTC 2   A110

Как я могу настроить свой код, чтобы он работал правильно, и что делает мой текущий раздел, чтобы неправильно их нумеровать?

1 Ответ

0 голосов
/ 18 июня 2019

Просто удалите раздел с помощью date:

SELECT
ChangedDateTime,
ROW_NUMBER() OVER(PARTITION BY ProductCode ORDER BY ChangedDateTime DESC) change_id,
ProductCode
FROM `dataset.table`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...