Guest User

Untitled

a guest
Jun 17th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. with day
  2. AS (SELECT
  3. user_id,
  4. DATE_TRUNC('day', datetime) AS active_day
  5. FROM events
  6. GROUP BY 1, 2),
  7. with_first_day
  8. AS (SELECT
  9. user_id,
  10. active_day,
  11. FIRST_VALUE(active_day) OVER (PARTITION BY user_id ORDER BY active_day) AS first_day
  12. FROM day),
  13. with_day_number
  14. AS (SELECT
  15. user_id,
  16. active_day,
  17. first_day,
  18. (active_day - first_day) / (24 * 60 * 60) AS day_number
  19. FROM with_first_day)
  20. SELECT
  21. TIME_FORMAT(first_day, 'yyyy-MM-dd') AS first_day,
  22. SUM(CASE WHEN day_number = 0 THEN 1 ELSE 0 END) AS day_0,
  23. SUM(CASE WHEN day_number = 1 THEN 1 ELSE 0 END)/day_0 AS day_1,
  24. SUM(CASE WHEN day_number = 2 THEN 1 ELSE 0 END)/day_0 AS day_2,
  25. SUM(CASE WHEN day_number = 3 THEN 1 ELSE 0 END)/day_0 AS day_3,
  26. SUM(CASE WHEN day_number = 4 THEN 1 ELSE 0 END)/day_0 AS day_4,
  27. SUM(CASE WHEN day_number = 5 THEN 1 ELSE 0 END)/day_0 AS day_5,
  28. SUM(CASE WHEN day_number = 6 THEN 1 ELSE 0 END)/day_0 AS day_6,
  29. SUM(CASE WHEN day_number = 7 THEN 1 ELSE 0 END)/day_0 AS day_7
  30. FROM with_day_number
  31. GROUP BY 1
  32. ORDER BY 1
Add Comment
Please, Sign In to add comment