我有一個記錄,我想在 max createddate 的基礎上找到每月唯一的記錄,我正在使用的代碼是
row_number()over(partition by mobile, createddate order by column1, column2, column3)
但使用這些我得到了多條記錄。
我想要基于 max createddate 每月一條記錄
預期輸入
MOBILENO CTREATEDDATE BRESTATUS
0 mobile1 2022-07-10 False
1 mobile1 2022-07-14 True
2 mobile2 2022-07-14 True
3 mobile2 2022-08-15 True
預期輸出,因為 mobile2 出現在兩個月,而 mobile1 僅出現在 7 月
1 mobile1 2022-07-14 True
2 mobile2 2022-07-14 True
3 mobile2 2022-08-15 True
uj5u.com熱心網友回復:
您需要按 對行號進行磁區MOBILENO ,YEAR(CTREATEDDATE), MONTH(CTREATEDDATE),請嘗試以下操作:
SELECT T.ID, T.MOBILENO, T.CTREATEDDATE
FROM
(
SELECT ID, MOBILENO, CTREATEDDATE,
ROW_NUMBER() OVER (PARTITION BY MOBILENO, YEAR(CTREATEDDATE), MONTH(CTREATEDDATE) ORDER BY CTREATEDDATE DESC) RN
FROM table_name
) T
WHERE T.RN=1
ORDER BY T.MOBILENO
查看演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/512149.html
