首页 > 解决方案 > 根据 if 条件,从第一次开始对网站访问者进行分类

问题描述

你能帮我用sql语句吗,最好它应该在大查询中工作。我有 3 列用户 ID、日期、主机名。我需要在以下条件下创建附加列 - client_type:当用户 ID 第一次来到主机名 =“online-store.com”时,从该日期开始,此特定用户 ID 的client_type将始终为“current_client”,否则为“visitor”。

例如,在图像(附加链接)中,我们有 userid = 1 和 4 已成为“当前客户”。用户 4 只是一个访客,但在访问 hostname = "online-store.com" 后,他将始终被归类为“当前客户”。在此处输入图像描述

标签: google-bigqueryintervalsbetweendateadd

解决方案


这应该很好:

#standardSQL
with userdates as (
  select userid, hostname, min(date) as mindate from `dataset.table` where hostname = 'online-store.com' group by userid, hostname
)

select u.userid, u.date, u.hostname, case when  u.date >= ud.mindate then 'current_user' else 'visitor' end as client_type
from `dataset.table` u
left outer join userdates ud on u.userid = ud.userid
order by 1, 2

推荐阅读