在Redshift中生成行号

时间:2018-03-16 00:11:13

标签: sql amazon-redshift

我有以下数据:

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')

但这并没有给我预期的结果。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

使用dense_rank并移除partition by

dense_rank() over(order by TO_DATE(created_at,'YYYY-MM-DD'))