MySQL 5.5.62如何统计用户登录天数及未登录天数?
统计2022年用户登录/未登录天数方案
方案一:基于已有的用户访问汇总表
汇总表中number_access_day字段直接记录了用户2022年的登录天数,只需计算未登录天数即可:
SELECT access_user AS 用户名, number_access_day AS 登录天数, 365 - number_access_day AS 未登录天数 FROM user_access_summary_2022; -- 替换为你的汇总表实际名称
说明
- 2022年是平年,总天数为365天,直接用总天数减去登录天数得到未登录天数。
- 该方案执行效率高,适合汇总表数据实时同步的场景。
方案二:直接从访问记录表统计(数据更准确)
如果汇总表数据存在滞后或不准确的情况,可直接从原始访问记录表统计,通过去重日期计算登录天数:
SELECT dt_user AS 用户名, COUNT(DISTINCT dt_access) AS 登录天数, 365 - COUNT(DISTINCT dt_access) AS 未登录天数 FROM user_access_log -- 替换为你的访问记录表实际名称 WHERE dt_access BETWEEN '2022-01-01' AND '2022-12-31' GROUP BY dt_user;
说明
- 使用
COUNT(DISTINCT dt_access)统计用户有访问记录的唯一日期数,即登录天数。 - 通过
WHERE子句限定2022年的访问数据,避免统计其他年份的记录。 - 该方案依赖原始数据,结果更精准,适合汇总表未及时更新的场景。
内容的提问来源于stack exchange,提问作者George A. Custer
相关产品推荐
相关产品推荐

