我有一个包含用户 ID 和时间戳的表,如下所示。
[member id] [timestamp]
1 1142461087
1 1339461211
2 1321280124
1 1249042100
3 1308325002
3 1308259235
我想返回 30 天或更长时间未登录的唯一成员(member) ID 列表。
这是我当前的查询:
SELECT member_id, login_timestamp
FROM logins
WHERE login_timestamp <= 1329461087
GROUP BY member_id
ORDER BY login_timestamp DESC
我认为这是正确的,但出于某种原因,在生产中,管理员用户的 ID 显示在列表中,这是不可能的,因为管理员每天都会登录。
最佳答案
这样的事情应该可行。
SELECT member_id, MAX(login_timestamp)
FROM logins
GROUP BY member_id
HAVING MAX(login_timestamp) <= 1329461087
ORDER BY MAX(login_timestamp) DESC
关于MySQL 选取所有30天未登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9560905/