这个题就是考察对日期函数的应用情况,及思路。
重点:求出每周的周一是哪天,并填充到列表中
在多次尝试和思考后,意识到比较简单的答案
利用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

京公网安备 11010502036488号