- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试计算每个国家/地区 1 个月内的 DAU 平均值。查询的工作是:
到目前为止,我已经完成了步骤 1、2、3 和 4,但事实证明最后一个很棘手。
该查询应该首先计算子查询,在该子查询中计算上个月有多少活跃用户打开了该应用程序,然后将其分组为天数和国家/地区。之后,它应该使用在子查询中计算出的所有 30 天数据来计算每个国家/地区的平均 DAU。结果将是一个国家列表及其平均 DAU。
到目前为止的查询如下所示:
SELECT Country, AVG(User_ID)
FROM usersession
WHERE User_ID IN
(SELECT count(distinct us.User_ID)
FROM usersession us
WHERE Opened > current_timestamp - interval 1 month
GROUP BY DAY(Opened), Country)
GROUP BY Country ORDER BY Country;
子查询执行步骤 1、2、3、4,但子查询外部的辅助查询并未按预期工作。
表格如下(只是相关信息的简短示例):
ID | UserID | Opened | Country
-----------------------------------------------
233231 1 2017-11-20 08:00:00 NA
223214 2 2017-11-20 08:53:00 DK
预期结果(总共约 230 个国家/地区):
Country | Average
------------------
NA 150354
DK 60345
FI 50242
实际结果:
+---------+--------------+
| Country | AVG(User_ID) |
+---------+--------------+
| NULL | 804397.7297 |
| | 746046.7500 |
| BR | 893252.0000 |
| GB | 935599.0000 |
| RU | 993311.0000 |
| US | 735568.0000 |
+---------+--------------+
最佳答案
我想这就是你想要的:
select
country,
sum(number_of_users) / count(distinct day_of_month) as daily_average_users
from
(
select
country,
day(opened) as day_of_month,
count(distinct user_id) as number_of_users
from
user_session
where
opened > current_timestamp - interval 1 month
group by
country,
day_of_month
) x
group by
country
order by
country;
我在 MySQL 5.7 上测试了这个:
create table user_session
(
id int,
user_id int,
opened timestamp,
country varchar(2)
);
insert into user_session (id, user_id, opened, country) values ( 1, 100, '2017-12-20 08:00:00', 'NA');
insert into user_session (id, user_id, opened, country) values ( 2, 100, '2017-12-20 08:00:00', 'NA');
insert into user_session (id, user_id, opened, country) values ( 3, 100, '2017-12-20 08:00:00', 'NA');
insert into user_session (id, user_id, opened, country) values ( 4, 100, '2017-12-21 08:00:00', 'NA');
insert into user_session (id, user_id, opened, country) values ( 5, 100, '2017-12-22 08:00:00', 'NA');
insert into user_session (id, user_id, opened, country) values ( 6, 200, '2017-12-20 08:00:00', 'NA');
insert into user_session (id, user_id, opened, country) values ( 7, 300, '2017-12-21 08:00:00', 'NA');
insert into user_session (id, user_id, opened, country) values ( 8, 400, '2017-12-20 08:00:00', 'NA');
insert into user_session (id, user_id, opened, country) values ( 9, 500, '2017-12-20 08:00:00', 'NA');
insert into user_session (id, user_id, opened, country) values (10, 600, '2017-12-20 08:00:00', 'DK');
insert into user_session (id, user_id, opened, country) values (11, 600, '2017-12-21 08:00:00', 'DK');
insert into user_session (id, user_id, opened, country) values (12, 700, '2017-12-20 08:00:00', 'DK');
insert into user_session (id, user_id, opened, country) values (13, 800, '2017-12-20 08:00:00', 'DK');
insert into user_session (id, user_id, opened, country) values (14, 800, '2017-12-21 08:00:00', 'DK');
insert into user_session (id, user_id, opened, country) values (15, 800, '2017-12-21 08:00:00', 'DK');
insert into user_session (id, user_id, opened, country) values (16, 900, '2017-12-20 08:00:00', 'DK');
insert into user_session (id, user_id, opened, country) values (17, 900, '2017-12-20 08:00:00', 'DK');
insert into user_session (id, user_id, opened, country) values (18, 900, '2017-12-22 08:00:00', 'DK');
insert into user_session (id, user_id, opened, country) values (19, 900, '2017-12-22 08:00:00', 'DK');
insert into user_session (id, user_id, opened, country) values (19, 1000, '2017-12-22 08:00:00', 'DK');
结果:
+---------+---------------------+
| country | daily_average_users |
+---------+---------------------+
| DK | 2.6667 |
| NA | 2.3333 |
+---------+---------------------+
2 rows in set (0.00 sec)
要成为正确的每日平均值,您需要在数据中表示该月的每一天(否则平均值会超过所表示的天数)。如果情况并非如此,那么我们需要计算所考虑的期间内的天数。
关于mysql - 使用子查询和分组依据计算每个国家/地区每日 DAU 平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48077524/
假设存在一个应用程序 X。 DAU 是否定义为 (a) 号码 登录 X 的用户数量 每一天在指定的时间段内,或 (b) 平均总数登录 X 的用户数量 每天在指定的时间内? 例如: 指定期限 = 5 天
有人能在我对 Django 数据库的请求中发现错误吗?所以,我有下一个模型: class GameEvent(models.Model): game = models.ForeignKe
我有一款使用 Facebook 登录和发布功能的游戏。但我的疑问是,当我看到Insight部分时,我发现移动应用程序安装量在1500左右,但每日活跃用户(DAU)只有883左右。根据我的理解,DAU必
我正在尝试在Google Data Studio中绘制DAU / MAU,但是当我尝试创建公式时,它总是显示无效的公式。 此外,如果我尝试在DAU中插入记分卡,则它总是会失败。 请指教。 最佳答案 恐
我编写了以下查询来计算 DAU/MAU 比率: WITH dau AS ( SELECT TRUNC(created_at) AS created_at, CASE
我有一个每日 session 表,其中包含列 user_id 和日期。我想绘制出每天的 DAU/MAU(每日活跃用户/每月活跃用户)。例如: Date MAU DAU
我正在尝试计算每个国家/地区 1 个月内的 DAU 平均值。查询的工作是: 识别唯一用户 查找上次登录的所有用户月 将它们分组为单独的日子 将它们分割为各自国家 计算每个国家/地区的平均值。 到目前为
这是目前为止的样子: collection.aggregate( [ { $match: { ct: {$gte: dateFrom, $l
这是目前为止的样子: collection.aggregate( [ { $match: { ct: {$gte: dateFrom, $l
情况: 我有一个登录表,其中包含电子邮件和登录时间列。我想计算每日登录时间(DAU)和每月滚动登录时间(MAU)。 DAU 和 MAU 必须计算不同的用户。即,如果某人在过去 30 天 (MAU) 内
我不想把这个问题过度复杂化,所以我会尽量把它问清楚以避免混淆。 我需要的结果是双重的。我想要 在 a) Google Analytics 以及 b) Firebase Analytics 中确定移动应
DAU 和 MAU(日活跃用户和月活跃用户)是衡量用户参与度的既定方法。 如何使用 SQL 和 Google BigQuery 获取这些数字? 最佳答案 2019 标准 SQL 更新: https:/
DAU 和 MAU(日活跃用户和月活跃用户)是衡量用户参与度的既定方法。 如何使用 SQL 和 Google BigQuery 获取这些数字? 最佳答案 2019 标准 SQL 更新: https:/
我试图了解是否最好按月报告当前 Firebase“Activity ”用户指标报告(查看下方图表),还是自行计算并报告 平均 特定时期内每个指标的值。 乍一看,仪表板显示了 2018 年 12 月的
我是一名优秀的程序员,十分优秀!