说我有一张Connections格式表[logID, user, time]
一个示例集是:
| logID | user | time
|-----------------------
| 91 | terry | 12:55:00 <--- Last by user
| 90 | terry | 12:54:26
| 89 | nami | 12:52:12 <--- Last by user
| 88 | terry | 12:50:50 <--- Last by user
| 87 | terry | 12:49:21
| 86 | terry | 12:48:16
| 85 | terry | 12:46:07
| 84 | nami | 12:31:22 <--- Last by user
| 83 | nami | 12:30:30
| 82 | nami | 12:29:26
| 81 | terry | 12:27:12 <--- Last by user
Run Code Online (Sandbox Code Playgroud)
所需的查询应该在用户列发生更改时对其进行分组,并选择该用户的上一个时间戳:
| logID | user | time
|-----------------------
| 91 | terry | 12:55:00 <--- Last by user
| 89 | nami | 12:52:12 <--- Last by user
| 88 | terry | 12:50:50 <--- Last by user
| 84 | nami | 12:31:22 <--- Last by user
| 81 | terry | 12:27:12 <--- Last by user
Run Code Online (Sandbox Code Playgroud)
我一直在玩GROUP BY,但还没到任何地方......
一种方法是使用用户变量:
SELECT logID, @lastuser:=user AS user, time
FROM mytable, (SELECT @lastuser:=NULL) init
HAVING NOT @lastuser<=>user
ORDER BY time DESC
Run Code Online (Sandbox Code Playgroud)
在sqlfiddle上看到它.
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |