0

我有这个 MySQL 表:

ID:int,主键用户名:varchar 访问时间:日期时间

每当用户登录时,都会在一行中写入他的用户名和当前时间。现在,我想按用户最后一次访问时间和第一次访问时间之间的时间对用户进行排序。

所以,对于一张桌子:

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 语法,所以我无法让它工作。

4

1 回答 1

2
SELECT username,HOUR(TIMEDIFF(MAX(AccessTime),MIN(AccessTime))) timedifference FROM table
GROUP BY username ORDER BY timedifference
于 2013-11-02T17:27:23.280 回答