昨晚上老同事聚會,一個同事說道一個面試問題沒有一個人做出來,就是求連續日期登錄次數最大的用戶,同事說借助 rownumber即可求解,由於是喝酒聊天,也沒有說詳細的解決過程。今天早上想了下,終於想到了具體的解決思路。 登錄時間里面有詳細的時分秒數據,而我們的題目只要求連續的天數,所以使 ...
有一個用戶登錄流水表結構如下: 這樣給它充值: 然后我們觀察這些記錄: 可以發現,A 用戶從 連續登錄了三天,從 連續登錄了兩天 B 用戶從 連續登錄了兩天,在 只登錄了一天 C 用戶從 連續登錄了兩天 D 用戶只在 登錄了一天。 我們的任務是編寫sql把用戶連續登錄的天數找出來。 首先,我們按用戶分組,按登錄時間升序排列一下,因為不同用戶的記錄毫無關系。 觀察上表,我們可以發現,連續登錄的用戶, ...
2020-03-19 16:20 0 874 推薦指數:
昨晚上老同事聚會,一個同事說道一個面試問題沒有一個人做出來,就是求連續日期登錄次數最大的用戶,同事說借助 rownumber即可求解,由於是喝酒聊天,也沒有說詳細的解決過程。今天早上想了下,終於想到了具體的解決思路。 登錄時間里面有詳細的時分秒數據,而我們的題目只要求連續的天數,所以使 ...
最近有個需求,計算用戶連續登錄的最大天數(這里使用prestoSql,使用hive也可以),先看下登錄日志數據表hive.traffic.access_user只有兩個字段:uid,day;日期輔助表hive.ods.dim_date,這個表只有一個字段day; 先說下思路 ...
昨天群上有人發個阿里的面試題,題目描述大概如下: 數據源:用戶登錄表,只有倆個字段,uid和dt 試用HQL抽取出連續登錄了K天的用戶uid 第一個想法就是直接用一個UDF解決,按uid分組,把dt收集起來然后在UDF里面判斷是否滿足條件 其中isExist的邏輯是判斷 ...
如何判斷連續: 根據用戶id分組排序(rn),再用login_date減去排序的天數,記為date_fg,如果連續則date_fg相等 select user_id, count(1) cnt from (select user_id, login_date, row_number ...
==>>點擊查看本系列文章目錄 目錄 1.創建項目 2.重寫用戶管理界面 3.用戶管理 4.用戶注冊 5.用戶登錄 6.用戶退出 7.自動數據遷移 8.啟動應用 1.創建項目 項目中會多出如下紅框內的用戶身份管理的文件 ...
參考:https://blog.csdn.net/ganghaodream/article/details/100083543 SQL計算最長登錄天數 計算最長登陸天數主要用兩個函數:1.窗口函數row_number()over() 2.date_sub() 1.使用row_number ...
和上一個日期之間相差的天數 針對相差的天數大於2的做等差數列,區別是否連續天 ...