mysql - 如何使用 Google BigQuery 在每个关卡中找到以前没有出现过的唯一用户?
问题描述
我想找出已经开始一个级别的唯一用户,并且该用户不应包含在任何其他级别中。当我使用 distinct 时,会显示每个级别的不同用户,他们可能玩过之前的关卡,也可能没有玩过之前的关卡。我应该怎么做?
我正在运行的查询是
SELECT
event_name,
chapter_name,
level_name,
COUNT(DISTINCT id) AS uniques,
COUNT(id) AS total
FROM
`abc.analytics_188353913.level`
WHERE
(first_open between "2020-01-20" AND "2020-01-26")
AND platform = "ANDROID"
AND event_name = "level_start"
GROUP BY
event_name,
chapter_name,
level_name
我需要找到只计算一次的用户。那可能吗?例如。如果用户访问级别 2、3 和 4,则此查询将在每个级别中计算他。我只需要在级别 2 上计算用户,而不是其余级别,即如果用户开始任何级别,他将不会被计入后续级别。
解决方案
推荐阅读
- node.js - 通过 beanstalk 部署节点应用程序时的“无数据”健康状态
- authentication - 站点管理员应用程序
- python - Sqlalchemy 查询在雪花上运行,但返回数据不一致
- php - Codeigniter - 输入数据保存在多个数组和数据库表中
- opengl-es - 如何将数据(来自 gleReadPixels)绘制到 OpenGLES 2.0 中的默认(显示)farmebuffer
- excel - 如何激活从 SAP 导出的工作簿?
- java - 错误 400,错误请求,Json 解析错误:无法识别的令牌“agama”:在使用 Spring Boot 的 Android 改造中期待(“真”、“假”或“空”)
- php - 使用 Laravel 从子数组中获取数据值
- typoscript - 将后端内容添加到 Typo3 扩展模板
- python - 如何更新数据库列中所需的数组(整数)