获取mysql行的最新日期
对不起,我的描述不好,但我正在努力为每个最后一次吃水果的人获取最新的日期。我不认为我把它分组正确,或者我完全错过了一些东西。有人能帮我吗?提前谢谢获取mysql行的最新日期,mysql,join,Mysql,Join,对不起,我的描述不好,但我正在努力为每个最后一次吃水果的人获取最新的日期。我不认为我把它分组正确,或者我完全错过了一些东西。有人能帮我吗?提前谢谢 T1 +--------+--------+--------+ | person | fruit | date | +--------+--------+--------+ | Bob | apple | 1-1-13 | | Bob | apple | 1-4-13 | | Bob | apple | 1-6-13 |
T1
+--------+--------+--------+
| person | fruit | date |
+--------+--------+--------+
| Bob | apple | 1-1-13 |
| Bob | apple | 1-4-13 |
| Bob | apple | 1-6-13 |
| Bob | orange | 1-2-13 |
| John | apple | 1-3-13 |
| John | orange | 1-2-13 |
| John | orange | 1-4-13 |
| John | orange | 1-9-13 |
+--------+--------+--------+
Results I'm looking for
+--------+--------+--------+
| person | fruit | date |
+--------+--------+--------+
| Bob | apple | 1-6-13 |
| Bob | orange | 1-2-13 |
| John | apple | 1-3-13 |
| John | orange | 1-9-13 |
+--------+--------+--------+
我从类似的文章中尝试了什么
SELECT * FROM T1
JOIN (
SELECT person,max(date) AS latest
FROM T1 GROUP BY person
) T2
ON T1.person = T2.person AND T1.date = T2.latest
Resulting in
+--------+--------+--------+
| person | fruit | date |
+--------+--------+--------+
| Bob | apple | 1-6-13 |
| John | orange | 1-9-13 |
+--------+--------+--------+
我怎样才能让它也分开水果栏呢?这里不需要加入
JOIN
。使用分组依据进行简单聚合
SELECT person, fruit, DATE_FORMAT(MAX(date), '%c-%e-%y') AS max_date
FROM T1
GROUP BY person, fruit
结果
| PERSON | FRUIT | MAX_DATE |
------------------------------
| Bob | apple | 1-6-13 |
| Bob | orange | 1-2-13 |
| John | apple | 1-3-13 |
| John | orange | 1-9-13 |
|人|水果|最大日期|
------------------------------
|鲍勃|苹果| 1-6-13|
|鲍勃|橙色| 1-2-13|
|约翰|苹果| 1-3-13|
|约翰·奥兰治1-9-13|
哦,你可以用两列来分组,这样事情就简单多了。感谢you@user1583432对如果正在使用聚合并选择其他列,则这些列必须包含在“分组依据”中。