我的任务是计算成员在当前访问日期访问图书馆的次数。我有一个成员的以下示例记录。例如,在 2000 年 10 月 1 日 (visit_id = 55353),该成员第一次访问了该库,因此他在 2000 年 10 月 1 日之前的访问次数为 0。然后在 2000 年 12 月 15 日(visit_id = 12355),该成员再次访问了图书馆,现在他在 2012 年 12 月 15 日之前访问了 1 次。该成员于 2002 年 1 月 1 日再次访问了图书馆 (visit_id = 52524),现在他在 2002 年 1 月 1 日之前访问了 2 次。现在继续到他最近一次访问之前 2009 年 12 月 12 日 (visit_id = 45254)该会员有 9 次访问图书馆。
Member_ID Date_Visit Visit_id
12345 2000-10-01 55353
12345 2000-12-15 12355
12345 2002-01-01 52524
12345 2002-01-02 62558
12345 2003-05-30 22287
12345 2003-08-12 82552
12345 2003-09-12 12563
12345 2005-11-25 78785
12345 2008-12-25 98212
12345 2009-12-12 45254
我在下面有一个使用 rank 函数的脚本,但我在第一次访问和最后一次访问时被卡住了。请注意,这只是此演示的一个成员。实际数据包括许多成员。
SELECT
DATE_VISIT,
RANK() OVER (PARTITION BY MEMBER_ID ORDER BY DATE_VISIT) AS Rank
FROM RANKS
DATE_VISIT Rank
2000-10-01 1
2000-12-15 2
2002-01-01 3
2002-01-02 4
2003-05-30 5
2003-08-12 6
2003-09-12 7
2005-11-25 8
2008-12-25 9
2009-12-12 10
我希望我的输出是这样的:
DATE_VISIT Rank
2000-10-01 0
2000-12-15 1
2002-01-01 2
2002-01-02 3
2003-05-30 4
2003-08-12 5
2003-09-12 6
2005-11-25 7
2008-12-25 8
2009-12-12 9
有人可以帮忙看看吗?是否有其他功能、案例陈述或修改排名功能以使其工作?