0

我有一个带有行 ID 和日期的基本表“事件”。它显示用户每次与站点交互(注册或登录)的时间。

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

现在,相同的表格格式但没有第一次出现的 id 可以解决我的问题。

4

2 回答 2

1

好的,所以每个事件您基本上需要的是:

  1. 用户身份
  2. 活动日期
  3. first_activity_date

您应该已经拥有 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
于 2018-04-09T19:21:43.980 回答
0

试试这个

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

解释

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

于 2018-04-09T15:45:41.487 回答