SQL按设备分辨率计算每周活动用户数

时间:2017-06-10 18:26:32

标签: sql postgresql

我想按设备分辨率计算我的应用每周活跃用户数。

我的dailyData表看起来像这样:

  • raw_advertiser_id 唯一身份用户ID
  • screen_dimensions 屏幕分辨率信息字符串
  • day_id 一个整数,计算自2017年4月以来的天数

它在 raw_advertiser_id day_id

上是唯一的

以下是使用PostgresSQL在2017年4月25日安装我的应用的用户的每周活跃用户数的结果

None

结果:

分辨率,totalUsers,weeklyActiveUsers,weeklyActiveUsersPercent

WITH users AS (
    SELECT raw_advertiser_id
    FROM beep.dailydata
    WHERE day_id < 25 + 7
    GROUP BY 1
    HAVING min(day_id) = 25
)

SELECT
  screen_dimensions,
  count(DISTINCT raw_advertiser_id) totalUsers,
  count(DISTINCT CASE WHEN day_id > 25
    THEN raw_advertiser_id END) weeklyActiveUsersCount,
  round(count(DISTINCT CASE WHEN day_id > 25
    THEN raw_advertiser_id END) :: NUMERIC / count(DISTINCT raw_advertiser_id) * 100,2) weeklyActiveUsersPercent
FROM beep.dailydata
  JOIN users USING (raw_advertiser_id)
  WHERE day_id < 25 + 7
GROUP BY 1
ORDER BY totalUsers DESC

我不仅要在4月25日执行此查询,还要在接下来的所有日子执行此查询并合并结果。在上面的查询中获取4月26日的结果,您只需要将数字25替换为26.问题是如何在查询中执行此操作?

0 个答案:

没有答案