希望有人可以在这里指出我正确的方向。
见下面的查询。
SELECT day_id,month_id,time_id,
row_number() over (partition BY month_id order by day_id ) rn
FROM minute_bars_fact order by month_id, day_Id, time_id
产生输出:
DAY_ID MONTH_ID Time_id rn
02-JAN-11 JAN-2011 1080 1
02-JAN-11 JAN-2011 1081 2
02-JAN-11 JAN-2011 1082 3
02-JAN-11 JAN-2011 1083 4
02-JAN-11 JAN-2011 1084 5
02-JAN-11 JAN-2011 1085 6
02-JAN-11 JAN-2011 1086 7
02-JAN-11 JAN-2011 1087 8
我的期望是,每次新的一天只会增加。显然事实并非如此。我在这里做错了吗?
编辑:
日子并不总是一样。
02-JAN-11 JAN-2011 1436 357
02-JAN-11 JAN-2011 1437 358
02-JAN-11 JAN-2011 1438 359
02-JAN-11 JAN-2011 1439 360
03-JAN-11 JAN-2011 0 361
03-JAN-11 JAN-2011 1 362
03-JAN-11 JAN-2011 2 363
03-JAN-11 JAN-2011 3 364
答案 0 :(得分:4)
我的期望是,每次新的一天只会增加。
不,这是不正确的。您需要使用RANK
或DENSE_RANK
来实现此行为。不是ROW_NUMBER