我正在尝试提出一个mySQL查询,该查询将获取下面的数据并输出我提供的示例输出。
基本上,我要寻找的是仅显示表中每个人的最新条目的输出(它们的名称和total_points)。
这里要注意的是,我只想显示最近进入游戏至少获得200分的人。在我的示例输出中,只有jeff和bob至少有200点,但是ted不会,并且不应成为输出的一部分。
是否可以在单个查询中执行此操作?还是必须将其分解为单独的查询?
表结构:
person------------date--------------------------------------total_points
jeff-----------------2018-07-16 09:00:00----------------300
bob----------------2018-07-15 09:00:00----------------500
ted-----------------2018-07-09 09:00:00----------------100
jeff-----------------2018-07-09 09:00:00----------------700
bob----------------2018-07-03 09:00:00----------------180
ted-----------------2018-06-10 09:00:00----------------1200
输出:
person--------total_points
jeff-------------300
bob------------500
答案 0 :(得分:1)
一种方法使用相关子查询来获取最新值:
select t.*
from t
where t.date = (select max(t2.date) from t t2 where t2.person = t.person) and
t.total_points >= 200;