SELECT
Race.*
FROM
(
SELECT Jockey, MAX(Date) as MaxDate
FROM Races GROUP BY Jockey
) MaxRaceDate
inner join (
SELECT Jockey, Date, MAX(Race) as MaxRace
FROM Races
GROUP BY Jockey, Date
) MaxRaceForDate
on MaxRateDate.Jockey = MaxRaceForDate.Jockey
and MaxRateDate.MaxDate = MaxRaceForDate.Date
inner join Race
on Race.Jockey=MaxRace.Jockey
and Race.Date = MaxRace.MaxDate
and Race.Race = MaxRaceForDate.MaxRace
2条答案
按热度按时间mlnl4t2r1#
我相信,你在寻找:
n3ipq98p2#
当你说“最大比赛号码”时,你指的是最近比赛的号码(最近日期的比赛),还是最高的号码?
假设您指的是前者,并为您的表命名为“races”:
这个查询越来越长,所以我可能有错误,但应该大致正确。;)
基本上,您需要对表进行聚合查询以查找日期,然后再进行另一个聚合查询以获取日期的最大速率,最后是表本身以获取信息。然后需要将它们与子查询或联接放在一起,联接通常要快得多,所以我就这样做了。