我正在尝试获取 activity 的查询,不包括注册日期(特定 ID 的第一次出现)

I'm trying to get a query to get activity, excluding the day of sign up (first occurrence of a specific id)

我有一个带有行 ID 和日期的基本 table "events"。它会在用户每次与站点交互(注册或登录)时显示。

我想计算每天的活跃用户数。但是我想排除用户注册当天的所有activity。

目前,相同的 table 格式但没有第一次出现的 ID 可以解决我的问题。

试试这个

 SELECT date, userid FROM consumer.events WHERE Count(userid) > 1 ORDER BY date, userid

说明

此 select 语句会将查询限制为仅显示 userid 未首次出现的位置

好的,所以您对每个事件的本质需求是:

  1. user_id
  2. acitivity_date
  3. first_activity_date

您应该已经从事件 table 中获得了前两个:对于 first_activity_date,您可以使用 window 函数来计算:以下是一个示例查询:

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