我有一个表来存储客户端的登录历史记录。其中一个捕获的字段是时间戳。我正在尝试编写一个查询来获取用户登录历史记录中的最后一行。
我认为这样的事情应该有效:
SELECT * FROM LoginHistory L
WHERE USER_ID like 'testuser@company.com'
HAVING L.TIMESTAMP < MAX(L.TIMESTAMP);
这似乎只选择了第一行。知道为什么会这样,以及如何正确地做到这一点?
由于
答案 0 :(得分:0)
我认为你所寻找的并不等于MAX -
SELECT * FROM LoginHistory L
WHERE USER_ID like 'testuser@company.com'
AND L.TIMESTAMP <> (
select MAX(L.TIMESTAMP) fromLoginHistory
where USER_ID like 'testuser@company.com'
)
答案 1 :(得分:0)
试试这个:
SELECT * FROM LoginHistory L
WHERE USER_ID = 'testuser@company.com'
AND L.TIMESTAMP < (SELECT MAX(TIMESTAMP) FROM LoginHistory WHERE USER_ID = 'testuser@company.com');