我有一个包含以下列的表:
和其他一些不相关的
有超过6万个唯一的购买ID。 所有不同的User_ID至少出现4次(通常更多),这意味着这些用户至少进行了4次购买。
我想做的是查找在相似的时间范围内进行购买的User_ID组。 例如,以用户A为例,查找在每个用户A的购买前后一小时之内进行过购买的所有其他用户,然后以这两个用户为例,重复此过程,直到达到已购买的最大数量的用户为止一起购买。 连接该组所有成员的购买金额不得少于3。
我意识到这很复杂,可能会导致出现许多不同的表,但是我不知道如何开始执行此操作,因此将不胜感激。
感谢所有助手,祝您有愉快的一天!
编辑:
就数据库标签而言,我正在使用AWS Athena,由于我是完全陌生的,所以我不确定它支持哪些功能。
样本数据:
User ID Time User_A 1521441850 User_B 1521441930 User_C 1521500000 User_D 1521530023 User_E 1521441900 User_F 1521000000 User_A 1521445850 User_B 1521445980 User_C 1521510000 User_D 1521520055 User_E 1521445100 User_F 1521000010 User_A 1521449850 User_B 1521445030 User_C 1521520000 User_D 1521500033 User_E 1521441910 User_F 1521000020 User_A 1521453850 User_B 1521441920 User_C 1521530000 User_D 1521540000 User_E 1521400000 User_F 1521000030
表1
Group1 Group2 User_A User_C User_B User_D User_E
表2
Group Name Amount of Users Amount of Purchases Linked Group1 3 11 Group2 2 8
答案 0 :(得分:0)
哪个数据库?
您需要了解Unix时间是如何工作的,以便可以使用它来解决您感兴趣的两个小时范围。
查找数据库的OLAP函数。如果可用,LAG和LEAD功能可能会为您提供帮助。如果您的实现中不提供这些功能,则可以使用更常见的OLAP函数进行仿真。