mysql - 选择过去 7 天使用的活动和非活动 MySQL
问题描述
我有一张桌子login_history
,其中login_time
和logout_time
反对 auser_id
正在存储。我有兴趣使用另一个查询获取过去 7 天内活跃的用户和非活跃user_ids
用户的列表。
我正在使用这个查询select user_id from login_history where login_time <= DATE(NOW()) - INTERVAL 7 DAY
,它显示user_id 1,2
在输出中。我怎样才能在过去 7 天的基础上获得active
和用户 ID?inactive
解决方案
测试MAX(login_time)
他们最近是否活跃。
这将返回非活动用户。
SELECT user_id
FROM login_history
GROUP BY user_id
HAVING MAX(login_time) <= DATE(NOW() - INTERVAL 1 WEEK)
要获得活跃用户,您可以简单地DISTINCT
在过滤最近登录时间后使用。
SELECT DISTINCT user_id
FROM login_history
WHERE login_time > DATE(NOW() - INTERVAL 1 WEEK)
推荐阅读
- android - 如何进行 CountUp 计时器循环?
- macos - 调整大小:找不到命令 MacOS Sierra
- git - 自动生成 chaneset/commit 消息(最好是 Mercurial)
- javascript - Angular如何进行多次打开和关闭
- excel - 命名范围图 vba
- c# - 无法读取以服务帐户登录的 Google 日历中的用户条目
- python - Python - Making linked lists of same values in matrix
- javascript - Cheerio:保留换行符
- amazon-web-services - 更改 SQS FIFO 中的重复数据删除间隔
- c# - 带回调 C# 的最小起订量序列