SQL在注册后映射用户
我有一个表a。当用户进入我们的网站时,id将为空。注册后,将生成id。如何从客户到达时开始跟踪他们SQL在注册后映射用户,sql,Sql,我有一个表a。当用户进入我们的网站时,id将为空。注册后,将生成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
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相同时,在进行分析时,还需要使用空的用户id。如何映射它们 您的数据表明,每个ip地址有一个用户。这似乎不现实,但假设您可以使用窗口函数:
select t.*,
coalesce(id,
max(id) over (partition by ipaddress)
) as imputed_id
from t;
严格来说,coalesce()
不是必需的,但它强调了使用窗口函数的原因
当我遇到这个问题时,情况就复杂多了,因为需要考虑会话,而且有些IP地址有多个用户。如果这更接近您真正想要解决的问题,那么请使用更合适的数据和更好的说明询问另一个问题。为什么不在为新用户创建第一条记录之前生成ID?或者使用IP地址作为标识符?这是来自分析平台的事件数据。在用户注册之前,他们的id为null。我需要将此表连接到多个表。所以用户id就是标识符。你在使用哪种DBMS产品?嗨,确实不像我贴的那么简单。我正在创建一个会话表。是的,有些ip地址有多个用户,反之亦然。我真的很困惑如何处理这件事。你能给我解释一下吗。这对我真的很有帮助。@George。请用更合适的样本数据和期望的结果提出另一个问题。我相信这回答了你在这里提出的问题。