我有这个MySQL表:
ID:int,主键 用户名:varchar AccessTime:datetime
每当用户登录时,都会使用其用户名和当前时间写入一行。 现在,我想按照上次和第一次访问时间之间的时间对用户进行排序。
所以,对于一张桌子:
Petr, 12:00
Petr, 14:00
Martin, 15:00
Petr, 16:00
Martin, 16:00
结果将是
Petr, 4:00 (because 16-12=4)
Martin, 1:00 (16-15)
是否可以形成SQL查询来执行此操作?
我正在考虑按日期时间对表格进行排序,然后按名称进行分组(这应该给出最早日期给出的行,然后按日期时间降序排序和分组,这会给我最新日期,然后加入这两个结果
答案 0 :(得分:2)
SELECT username,HOUR(TIMEDIFF(MAX(AccessTime),MIN(AccessTime))) timedifference FROM table
GROUP BY username ORDER BY timedifference