答案 0 :(得分:2)
当你说"最大比赛号码"时,你的意思是最近一场比赛的数量(最近一次比赛的比赛),还是最高的数字?
假设你的意思是前者,并且组成名称' Races'为你的桌子:
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
此查询越来越长,因此我可能会收到错误,但它应该大致正确。 ;)
基本上,您需要在表上查找聚合查询以查找日期,然后需要另一个聚合查询以获取日期的最大速率,然后最终获取表本身以获取信息。然后你需要将它们与子查询或连接组合在一起,并且连接通常要快得多,所以我就是这样。
答案 1 :(得分:1)
我相信,你在寻找:
SELECT Jockey,MAX(DATE),MAX(RACE) FROM myTable GROUP BY Jockey