【发布时间】:2015-09-08 11:53:45
【问题描述】:
我有一个下表:
+-------+--------+----------+ |分数 |用户 |报废时间 | +-------+--------+----------+ | 200 |鲍勃 | 2015-09-08 11:46:17 | +-------+--------+----------+ | 210 |爱丽丝 | 2015-09-08 11:46:17 | +-------+--------+----------+ | 240 |鲍勃 | 2015-09-08 11:48:00 | +-------+--------+----------+ | 260 |爱丽丝 | 2015-09-08 11:48:01 | +-------+--------+----------+我想获取 每个用户 拥有 最新 scrap_time 的所有分数,并忽略较旧的分数。
例子:
+-------+--------+----------+ |分数 |用户 |报废时间 | +-------+--------+----------+ | 240 |鲍勃 | 2015-09-08 11:48:00 | +-------+--------+----------+ | 260 |爱丽丝 | 2015-09-08 11:48:01 | +-------+--------+----------+我一直在尝试提出一个查询,比如这个:
select * from scores where date(scrap_time) = ( select max(scrap_time) from scores);
但这并没有给我我需要的结果。
【问题讨论】:
-
为什么
Bob也包含在预期的结果集中? -
因为我需要每个用户的最后一个分数
-
select score,max(scrap_time),user from scores -
@Saty : 这只会返回一个结果,我需要选择所有用户