【问题标题】:How to find total sessions played in BigQuery?如何查找 BigQuery 中播放的总会话数?
【发布时间】:2020-03-26 12:59:30
【问题描述】:

如何找出一个月时间范围内所有用户玩的总会话数。事件 user_engagement 有一个参数 session count,该参数在每个会话中递增。问题是玩 10 个会话的用户的会话计数为 1 到 10。那么我应该如何只添加最大会话计数,即在这种情况下为 10,对于所有用户也是如此。

SELECT
  SUM(session_count) AS total_sessions,
  COUNT(DISTINCT user_pseudo_id) AS users
FROM
  `xyz.analytics_111.events_*`

WHERE
  event_name = "user_engagement" AND (_TABLE_SUFFIX BETWEEN "20200201" AND "20200229")
  AND platform = "ANDROID"

【问题讨论】:

  • 请提供样本数据和期望的结果。

标签: sql firebase session google-analytics google-bigquery


【解决方案1】:

试试下面(BigQuery 标准 SQL)

#standardSQL
SELECT
  SUM(session_count) AS total_sessions,
  COUNT(user_pseudo_id) AS users
FROM (
  SELECT user_pseudo_id, MAX(session_count) session_count
  FROM `xyz.analytics_111.events_*`
  WHERE event_name = "user_engagement" 
  AND _TABLE_SUFFIX BETWEEN "20200201" AND "20200229"
  AND platform = "ANDROID"
  GROUP BY user_pseudo_id
)

【讨论】:

    【解决方案2】:

    我不清楚您的数据是什么样的。如果每个会话有一行,那么您可以简单地使用:

    SELECT COUNT(*) AS total_sessions,
           COUNT(DISTINCT user_pseudo_id) AS users
    . . .
    

    如果每个会话可以有多个事件,则可以使用 hacky 方法:

    SELECT COUNT(DISTINCT CONCAT(user_pseudo_id, ':', CAST(session_count as string)))
    

    我提供这个,因为有时在复杂的查询中,只调整一行会更简单。否则,米哈伊尔的解决方案是合理的。

    不过,我建议改为使用窗口函数:

    SELECT SUM(CASE WHEN seqnum = 1 THEN session_count END) AS total_sessions,
           COUNT(DISTINCT user_pseudo_id) AS users
    FROM (SELECT e.*,
                 ROW_NUMBER() OVER (PARTITION BY user_pseudo_id ORDER BY session_count DESC) as seqnum
          FROM `xyz.analytics_111.events_*`
          WHERE e.event_name = 'user_engagement' AND
                _TABLE_SUFFIX BETWEEN '20200201' AND '20200229' AND
                platform = 'ANDROID'
        ) e;
    

    我推荐这样做的原因是因为您可以保留其余的计算而不更改它们。这在复杂查询中很方便。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 2021-07-17
      • 1970-01-01
      相关资源
      最近更新 更多