我有一个表A。当用户进入我们的网站时,该ID将为null。他们注册后,将生成ID。我如何从客户到达的时间开始对其进行跟踪。
id time city ipaddresss page visited
10.15 New York 192.45.323.12 page1
10.4 New York 192.45.323.12 page2
1 11.15 New York 192.45.323.12 page3
1 11.45 New york 192.45.323.12 page3
因此这是单个客户的数据。当ipaddress相同时,当我进行分析时,也需要使用null的用户ID。如何映射它们?
答案 0 :(得分:0)
您的数据表明您每个IP地址有一个用户。这似乎并不现实,但是在这种假设下,您可以使用窗口函数:
select t.*,
coalesce(id,
max(id) over (partition by ipaddress)
) as imputed_id
from t;
严格来说,coalesce()
不是必需的,但它突出了为什么要使用窗口功能。
遇到此问题时,它要复杂得多,因为需要考虑会话-某些IP地址有多个用户。如果这更接近于您真正要解决的问题,请向另一个问题提问,并提供更合适的数据并更好地说明您需要做什么。