2024-10-23|閱讀時間 ‧ 約 0 分鐘

Leetcode 解鎖 - User Activity for the Past Days(MS SQL SERVER)

自 2019-07-27 開始,往前推 30 天 ,計算每天的活躍用戶數。用戶在某天如果至少有一次活動記錄,則被認為在該天是活躍的,不用管答案的排序。

結果表的格式如下例所示:

輸⼊ :

Activity

輸出 :

解釋:

  • 在 2019-07-20 和 2019-07-21,分別有兩位不同的用戶活躍。
  • 我們不需要關心那些沒有活躍用戶的日子。
參考答案

可以使⽤ GROUP BYCOUNT(DISTINCT user_id) 來計算每天的活躍⽤戶數,並且篩選⽇期範圍為2019/07/27 往前的30 天

select activity_date as day 
, count(distinct user_id ) active _users
from Activity
where datediff (day,activity_date, '2019-07-27') between 0 an d 29
group by activity_date


解釋:

  • DATEDIFF(day, activity_date, '2019-07-27'):計算 activity_date2019-07-27 之間的天數差,並確保 activity_date 在過去 30 天內。
  • COUNT(DISTINCT user_id):計算每一天活躍的不同用戶數。
  • GROUP BY activity_date:按照每一天進行分組。

這樣可以得到每天的活躍用戶數,並且只顯示有活躍用戶的日期。



謝謝您花時間將此篇文章讀完,若覺得對您有幫助可以幫忙按個讚、分享來或是珍藏喔!也歡迎Follow我的Threads,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.