假设我们有一个名为 UserSessions
. 每个用户可以在一天内或跨不同的日子有多个会话。此表的列是
UserSessions table:
---------------------
SessionID (int) PK,
UserID (int),
datetime (datetime)
示例数据如下所示:
1, 1001, 2017-01-01
2, 1001, 2017-01-01
3, 1002, 2017-01-01
4, 1002, 2017-01-02
...
现在,我们要编写一个查询,显示过去30天内每天的不同用户数。最好的方法是什么?
一个明显的解决方案是使用self-join,但我们希望可以避免这种情况。
这和窗口功能有关吗?我想知道是否有一个特性,对于每一行,我们可以在前面的x行和后面的y行内进行聚合。
例如,类似的问题,如“迄今为止记录的每天前30天的窗口中,橙子价格的平均值是多少”等。更具体地说,这就像是在第x天的x-30到x-1天内问一个聚合问题。
1条答案
按热度按时间5fjcxozz1#
你可以用一个小组,例如: