У меня есть данные, содержащие коды продуктов и даты, когда данные были обновлены, я бы хотел пронумеровать строки для каждого кода продукта, чтобы я мог выбрать только самое последнее обновление.
Я попробовал следующий код:
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
Как я могу настроить свой код, чтобы он работал правильно, и что делает мой текущий раздел, чтобы неправильно их нумеровать?