最新消息:

数据库查询最新成绩的sql语句

学习 eben 1206浏览

SCORE表里有这几个字段
SCORE_DATE 分数产生的日期
NAME 姓名
RUN 跑步
SWIM 游泳
HORSE 骑马

SCORE_DATE NAME RUN SWIM HORSE
2021-12-27 09:00:00 JACK 90 85 72
2021-12-25 10:00:00 JACK 77 58 99
2021-12-21 09:00:00 ROSE 82 77 91
2021-12-18 09:00:00 JACK 62 89 55
2021-12-17 10:00:00 ROSE 62 92 85
2021-12-11 09:00:00 ROSE 70 91 81

分数每天产生1次或多次,这里只写了JACK,ROSE其实有几十个人

想要的结果是
SCORE_DATE NAME RUN SWIM HORSE
2021-12-21 09:00:00 JACK 90 85 72
2021-12-21 09:00:00 ROSE 82 77 91

也就是说这几十个人的最新成绩。
怎样查呢?


select a.NAME,a.SCORE_DATE,a.RUN,a.SWIM,a.HORSE from SCORE a
inner join
(SELECT NAME,max(SCORE_DATE) as maxdate FROM SCORE group by NAME ) b
on a.NAME=b.NAME and a.SCORE_DATE=b.maxdate

转载请注明:落伍老站长 » 数据库查询最新成绩的sql语句