我有一个带有行 ID 和日期的基本表“事件”。它显示用户每次与站点交互(注册或登录)的时间。
我想计算每天的活跃用户。但我想排除用户注册当天的所有活动。
现在,相同的表格格式但没有第一次出现的 id 可以解决我的问题。
我有一个带有行 ID 和日期的基本表“事件”。它显示用户每次与站点交互(注册或登录)的时间。
我想计算每天的活跃用户。但我想排除用户注册当天的所有活动。
现在,相同的表格格式但没有第一次出现的 id 可以解决我的问题。
好的,所以每个事件您基本上需要的是:
您应该已经拥有 events 表中的前两个:对于 first_activity_date,您可以使用窗口函数来计算:以下是示例查询:
SELECT
activity_date,
COUNT(*) AS cnt
FROM (
SELECT
user_id,
activity_date,
MIN(activity_date) OVER (PARTITION BY user_id) AS first_activity_date
FROM
[project_id:dataset.events]
)
WHERE
activity_date != first_activity_date
GROUP BY
1
ORDER BY
1
试试这个
SELECT date, userid FROM consumer.events WHERE Count(userid) > 1 ORDER BY date, userid
解释
此 select 语句将限制查询仅显示userid
第一次未出现的位置