题解 | #统计自然周平均登录次数情况#
统计自然周平均登录次数情况
https://www.nowcoder.com/practice/4655e5dfa8f64166875d6f77558a1fc8
这个题就是考察对日期函数的应用情况,及思路。
重点:求出每周的周一是哪天,并填充到列表中
在多次尝试和思考后,意识到比较简单的答案
利用weekday算出每天是当周的第几天,然后使用login_date减去这个天数就可以得到当周的第一天
DATE_SUB(login_date, interval weekday(login_date) day)
这个思路一旦建立,这个题就很简单了。
select week_begin, round(count(*) / count(DISTINCT uid), 2) as avg_times from ( select uid, DATE_SUB(login_date, interval weekday(login_date) day) as week_begin from user_login_tb ) t group by week_begin order by week_begin