给定一个 ORDER,每个 GROUP 获得一条记录

Get one record per GROUP given an ORDER

我有一个简单的table:

+--------------------------+
|       `actions`          |
+----+--------+------------+
| id | person | time       |
+----+--------+------------+
| 1  | Mark   | 22:00      |
+----+--------+------------+
| 2  | Paul   | 19:00      |
+----+--------+------------+
| 3  | Mark   | 17:00      |
+----+--------+------------+
| 4  | Paul   | 08:00      |
+----+--------+------------+
| 5  | Paul   | 23:00      |
+----+--------+------------+

我想执行 groupsperson 列的查询,然后 returns 只有最早 [=] 的 id 14=]。所以结果应该类似于:

+----+--------+------------+
| 3  | Mark   | 17:00      |
+----+--------+------------+
| 4  | Paul   | 08:00      |
+----+--------+------------+

我不认为这是一个困难的查询,但出于某种原因我就是做不到。

想通了:

SELECT id, person, MIN(time) FROM actions GROUP BY person;

MIN 更改为 MAX 以仅获取最大的。