我有以下数据:
salesid | date | rownum
---------+----------+-----
10001 | 2018-01-02 | 1
10006 | 2018-01-02 | 1
10005 | 2018-01-02 | 1
20001 | 2018-01-03 | 2
20002 | 2018-01-03 | 2
30001 | 2018-01-05 | 3
30003 | 2018-01-05 | 3
30004 | 2018-01-05 | 3
30007 | 2018-01-05 | 3
40005 | 2018-01-10 | 4
40001 | 2018-01-10 | 4
我想根据rownum
字段生成列date
。我想在同一日期将rownum
的值保持相同,并在日期增加时增加它。
select salesid,
TO_DATE(created_at,'YYYY-MM-DD') as date,
row_number() over(partition by TO_DATE(created_at,'YYYY-MM-DD') order by TO_DATE(created_at,'YYYY-MM-DD')) as rownum
from <tablename>
order by TO_DATE(created_at,'YYYY-MM-DD')
但这并没有给我预期的结果。我该如何解决这个问题?
答案 0 :(得分:3)
使用dense_rank
并移除partition by
。
dense_rank() over(order by TO_DATE(created_at,'YYYY-MM-DD'))