注册后通过SQL映射用户

时间:2018-08-18 07:01:11

标签: sql

我有一个表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。如何映射它们?

1 个答案:

答案 0 :(得分:0)

您的数据表明您每个IP地址有一个用户。这似乎并不现实,但是在这种假设下,您可以使用窗口函数:

select t.*,
       coalesce(id,
                max(id) over (partition by ipaddress)
               ) as imputed_id
from t;

严格来说,coalesce()不是必需的,但它突出了为什么要使用窗口功能。

遇到此问题时,它要复杂得多,因为需要考虑会话-某些IP地址有多个用户。如果这更接近于您真正要解决的问题,请向另一个问题提问,并提供更合适的数据并更好地说明您需要做什么。

相关问题