- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了以下查询来计算 DAU/MAU 比率:
WITH dau AS
(
SELECT TRUNC(created_at) AS created_at,
CASE
WHEN user_agent SIMILAR TO '%(Mobile|iPhone|iPod|iPad|Android)%' THEN 'non-desktop'
ELSE 'desktop'
END AS trafficsource,
COUNT(DISTINCT member_id) AS dau
FROM table ds
WHERE ds.created_at BETWEEN '2017-01-01' AND '2017-12-11'
AND member_id <> 2
AND member_id NOT IN (SELECT memberid FROM auth2.membersinglerole WHERE roleid = 25)
GROUP BY TRUNC(created_at),
trafficsource
)
SELECT created_at,
trafficsource,
dau,
(SELECT COUNT(DISTINCT member_id)
FROM table ds
WHERE member_id <> 2
AND member_id NOT IN (SELECT memberid FROM auth2.membersinglerole WHERE roleid = 25)
AND ds.created_at BETWEEN dau.created_at - 29*INTERVAL '1 day' AND dau.created_at) AS mau,
(dau / CAST(mau AS float)) AS "DAU/MAU",
(dau / CAST(mau AS float))*30 AS DaysOutOf30
FROM dau
WHERE EXTRACT(dayofweek FROM created_at) NOT IN (0,6)
AND EXTRACT(month FROM created_at) NOT IN (5,6,7)
ORDER BY created_at
此查询为“桌面”和“非桌面”创建 2 个段。但值得注意的是,查询在同一天为这两个分割返回相同的“MAU”数字,如下所示。
created_at trafficsource dau mau DAU/MAU DaysOutOf30
2017-01-02 desktop 4157 140834 0.02951702003777497 0.8855106011332491
2017-01-02 non-desktop 801 140834 0.005687547041197438 0.17062641123592315
2017-01-03 desktop 12610 140468 0.089771335820258 2.6931400746077396
2017-01-03 non-desktop 2891 140468 0.020581199988609505 0.6174359996582851
2017-01-04 non-desktop 4033 137516 0.029327496436778264 0.8798248931033479
2017-01-04 desktop 17902 137516 0.1301812152767678 3.9054364583030337
如何修复查询以返回创建的分段的“MAU”值?任何帮助将不胜感激。
最佳答案
您可以通过单独计算然后将其连接回 dau
来获得准确的 mau
值以获得最终结果。
逻辑步骤:
member_id
创建 1 行流量
。请注意,该范围的开始时间比您的最终选择范围早 30 天。dau
流量
连接到自身来创建mau
,该范围连接(使用您的间隔逻辑)会引入最近 30 天的数据。对该数据中不同的 member_id
进行计数。created_at
上连接 dau
和 mau
。WITH traffic AS (
SELECT member_id,
TRUNC(created_at) AS created_at,
CASE WHEN user_agent SIMILAR TO '%(Mobile|iPhone|iPod|iPad|Android)%'
THEN 'non-desktop' ELSE 'desktop' END AS trafficsource,
FROM table ds
WHERE ds.created_at BETWEEN '2016-12-01' AND '2017-12-11'
AND member_id <> 2
AND member_id NOT IN (SELECT memberid FROM auth2.membersinglerole WHERE roleid = 25)
GROUP BY 1,2,3
), dau AS (
SELECT created_at, trafficsource,
COUNT(DISTINCT member_id) AS dau
FROM traffic
GROUP BY 1,2
), mau AS (
SELECT ds.created_at, ds.trafficsource,
COUNT(DISTINCT ds.member_id) AS mau
FROM traffic ds
LEFT JOIN traffic mth
ON ds.member_id = mth.member_id
AND ds.created_at BETWEEN mth.created_at - 29*INTERVAL '1 day' AND mth.created_at
GROUP BY 1,2
)
SELECT created_at, trafficsource, dau, mau,
(dau / CAST(mau AS float)) AS "DAU/MAU",
(dau / CAST(mau AS float))*30 AS DaysOutOf30
FROM dau
JOIN mau
USING (created_at, trafficsource)
WHERE created_at BETWEEN '2017-01-01' AND '2017-12-11'
AND EXTRACT(dayofweek FROM created_at) NOT IN (0,6)
AND EXTRACT(month FROM created_at) NOT IN (5,6,7)
ORDER BY created_at
;
关于sql - 分段的 DAU/MAU 计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53963254/
假设存在一个应用程序 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 月的
我是一名优秀的程序员,十分优秀!