首页 > 解决方案 > 如果我必须选择几种类型的用户,如何避免“错误:不允许聚合聚合”?

问题描述

我试图根据他们在成为一个应用程序之前使用该应用程序的时间来计算不同类型的睡眠用户的比例

我将睡眠用户分为三种不同的类型:

  1. 注册后没用过
  2. 使用一段时间:不到一周
  3. 使用一段时间:一个多月
#standardsql

select
    count (distinct case when date_diff(date(m.updated_at),date(m.created_at),day) < 1 then m.id else null end)/count(distinct m.id) as nun_used,
    count (distinct case when date_diff(max(s.event_created_at_taipei_zone_date),min(s.event_created_at),day) <=7 then m.id else null end)/count(distinct m.id) as short_used,
    count (distinct case when date_diff(max(s.event_created_at_taipei_zone_date),min(s.event_created_at),day) >=30 then m.id else null end)/count(distinct m.id) as long_used
    
from 
    members m
    left join sessionization s
    on m.id = s.member_id 
    
where
    m.updated_at < '2021-9-15' and
    m.created_at > '2020-01-01'

“会话化表”将数据记录为 Google Analytics 中的会话

所以我使用 min(s.event_created_at) 来查找用户第一次使用该应用程序的时间

和 max(s.event_created_at) 来查找用户最后一次使用应用程序的时间

\

我收到“不允许聚合聚合”错误。我该怎么做才能解决这个问题?

标签: sqlgoogle-bigquery

解决方案


推荐阅读