QuXiangjie / Study-Review

自己欠缺的还太多了,希望通过总结每天的学习内容,整理每天的思绪来丰富自己的知识库。我想成为一名优秀的金融数据分析师,并行发展技术与商业业务。博客内容为:数理统计、财务业务、Python(数据分析及可视化)、Excel(数据分析)、SQL、英文
0 stars 0 forks source link

550. Game-play-analysis-iv #11

Open QuXiangjie opened 6 months ago

QuXiangjie commented 6 months ago

Question

This question is for date function manipulation,

DATE_ADD(act1.event_date, INTERVAL 1 DAY) = act2.event_date we can use function to add 1 more day into event_date.

Below is the solution of this question:

SELECT ROUND(COUNT(DISTINCT player_id) / (SELECT COUNT(DISTINCT player_id) FROM Activity), 2) as fraction
FROM Activity
WHERE (player_id, DATE_SUB(event_date, INTERVAL 1 DAY))
IN (SELECT player_id, MIN(event_date) AS first_login FROM ACTIVITY GROUP BY player_id)

DATE_SUB(NOW(),INTERVAL 24 HOUR) only need to be calculated once, while DATE_ADD(datetimecolumn,INTERVAL 24 HOUR) need to do with every records DATE_SUB('2024-04-07', INTERVAL 1 DAY) will subtract 1 day from the date '2024-04-07', resulting in '2024-04-06'. DATE_ADD('2024-04-07', INTERVAL 1 DAY) will add 1 day to the date '2024-04-07', resulting in '2024-04-08'.