继上一个问题之后,我有一个名为orders的表格,里面有关于下订单时间和谁下订单的信息。
order_timestamp user_id
-------------------- ---------
1-JUN-20 02.56.12 123
3-JUN-20 12.01.01 533
23-JUN-20 08.42.18 123
12-JUN-20 02.53.59 238
19-JUN-20 02.33.72 34
我想计算一个用户在过去10天的订单日滚动计数。例如,在6月20日之后的最后10天内,用户34在其中的5天下了订单。然后在6月21日之后的最后10天,用户34在其中6天下了订单
最后,表格应该是这样的:
date user_id no_of_days
----------- --------- ------------
20-JUN-20 34 5
20-JUN-20 123 10
20-JUN-20 533 2
20-JUN-20 238 3
21-JUN-20 34 6
21-JUN-20 123 10
如何为这种分析编写查询?如果我的问题不清楚/需要更多信息,请告诉我。多亏了你的进步。
2条答案
按热度按时间lymnna711#
您可以使用窗口函数来实现这一点。从每天为每个用户获取一行开始。然后使用滚动总和:
ekqde3dh2#
假设用户每天最多下一个订单,您可以按如下方式使用窗口函数:
否则,您可以先获得每天不同的订单: