给定一个 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 |
+----+--------+------------+
我想执行 groups 按 person
列的查询,然后 returns 只有最早 [=] 的 id
14=]。所以结果应该类似于:
+----+--------+------------+
| 3 | Mark | 17:00 |
+----+--------+------------+
| 4 | Paul | 08:00 |
+----+--------+------------+
我不认为这是一个困难的查询,但出于某种原因我就是做不到。
想通了:
SELECT id, person, MIN(time) FROM actions GROUP BY person;
将 MIN
更改为 MAX
以仅获取最大的。
我有一个简单的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 |
+----+--------+------------+
我想执行 groups 按 person
列的查询,然后 returns 只有最早 [=] 的 id
14=]。所以结果应该类似于:
+----+--------+------------+
| 3 | Mark | 17:00 |
+----+--------+------------+
| 4 | Paul | 08:00 |
+----+--------+------------+
我不认为这是一个困难的查询,但出于某种原因我就是做不到。
想通了:
SELECT id, person, MIN(time) FROM actions GROUP BY person;
将 MIN
更改为 MAX
以仅获取最大的。