从多个条目中选择最佳记录

时间:2014-01-25 09:11:44

标签: mysql sql greatest-n-per-group

我有一个表,每次登录时都会列出登录用户。这个表是这样的

id  |  user | cmd   | ts
1   |  john | login | 2014-01-19 18:26:01
2   |  mark | login | 2014-01-19 18:36:00
3   |  john | login | 2014-01-19 18:40:13
4   |  dave | login | 2014-01-19 18:41:58
5   |  john | login | 2014-01-19 18:50:59
6   |  mark | login | 2014-01-19 19:03:23
7   |  dave | login | 2014-01-19 19:15:13
8   |  mark | login | 2014-01-19 19:26:58

我只需从此表中选择最新的登录名,因此我期望的输出是

id  |  user | cmd   | ts
5   |  john | login | 2014-01-19 18:50:59
7   |  dave | login | 2014-01-19 19:26:58
8   |  mark | login | 2014-01-19 19:15:13

这是我试过的

SELECT * FROM `logins` group by user having count(*) <= 1 order by ts 

我有零行

3 个答案:

答案 0 :(得分:2)

SELECT id,user,cmd,MAX(ts) ts FROM `logins`
group by user

答案 1 :(得分:1)

您的订单缺少方向。尝试添加ASC或DESC。在你的情况下,它将是DESC

order by ts DESC

答案 2 :(得分:0)

SELECT user,ts,count(*) FROM `logins`  LIMIT 3  group by user order by ts DESC
相关问题