【发布时间】:2018-06-20 11:10:05
【问题描述】:
我有一个包含客户编号和订单日期列表的表格,并希望对每个客户编号添加一个计数,每次客户编号更改时从 1 重新开始,我已将表格排序为客户然后日期订单,并且需要添加订单计数列。
CASE WHEN 'Customer Number' on This row = 'Customer Number' on Previous Row then ( Count = Count on Previous Row + 1 )
Else Count = 1
解决这个问题的最佳方法是什么?
客户和客户中的日期然后日期顺序:
Customer Date Count
0001 01/05/18 1
0001 02/05/18 2
0001 03/05/18 3
0002 03/05/18 1 <- back to one here as Customer changed
0002 04/05/18 2
0003 05/05/18 1 <- back to one again
我刚刚尝试过COUNT(*) OVER (PARTITION BY Customer ) as COUNT,但由于某种原因,当客户更改时,它似乎不是从 1 开始的
【问题讨论】:
-
您可以在您的问题中添加一些表格格式的数据吗?你的逻辑并不完全清楚(至少对我来说不是)。
标签: sql oracle lag window-functions lead