我有一张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查询来执行此操作?
我正在考虑按日期时间对表进行排序,然后按名称进行分组(这将给出与最早日期相同的行,然后按日期时间降序和分组排序,这将给出最新的日期,然后加入这两个结果,并对其进行排序。但是,除了基本知识之外,我不知道SQL语法,所以我无法使它工作。
发布于 2013-11-02 17:27:23
SELECT username,HOUR(TIMEDIFF(MAX(AccessTime),MIN(AccessTime))) timedifference FROM table
GROUP BY username ORDER BY timedifferencehttps://stackoverflow.com/questions/19744656
复制相似问题