簡體   English   中英

每個日期帶分區的唯一行號

[英]Unique row number per date with partition

我有包含產品代碼和數據更新日期的數據,我想對每個產品代碼的行進行編號,以便我只能選擇最近的更新。

我嘗試了以下代碼:

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

如何調整我的代碼以使其正常運行,我當前的分區正在做什么以對這些數字進行錯誤編號?

只需按date刪除分區:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM