sqlite 如何在sql中按MAX分组?

edqdpe6u  于 2022-12-13  发布在  SQLite
关注(0)|答案(2)|浏览(172)

Race
| RaceID | Year |
| ------------ | ------------ |
| 01 | 2010 |
| 02 | 2011 |
| 03 | 2011 |
| 04 | 2011 |
| 05 | 2012 |
| 06 | 2012 |
| 07 | 2013 |
Results
| ResultID | RaceID | Speed |
| ------------ | ------------ | ------------ |
| A | 01 | 180 |
| B | 02 | 190.5 |
| C | 03 | 185 |
| D | 04 | 170 |
| E | 05 | 200 |
| F | 06 | 190 |
| G | 07 | 220 |
How can i get the MAX speed of each year and GROup it by year??

wvmv3b1j

wvmv3b1j1#

因此,您可以在公共字段(即race_id)中加入race和results,然后仅选择年份和速度,之后按年份分组并获得最大速度。

SELECT 
  race.year
, MAX(results.speed) AS max_speed
FROM race 
JOIN results ON (race.raceid = results.raceid)
GROUP BY 
  race.year
bis0qfac

bis0qfac2#

对于具有“最大速度”、“记录员比赛ID”和“结果ID”的“年份”:

select a.Year, a.max_Speed, b.RaceID, b.ResultID from
(select Year, max(Speed) max_Speed from Race a1 
 left join Results a2 on a2.RaceID = a1.RaceID
 group by Year
) a
left join
(select Year, Speed, b1.RaceID, ResultID from Race b1 
 left join Results b2 on b2.RaceID = b1.RaceID) b
 on b.Year = a.Year
and b.Speed = a.max_Speed
order by Year desc

仅适用于带有'max_speed'的'year':

select
    year
    , max(speed) max_speed
from race a
left join results b
    on b.raceID = a.raceID
group by year
order by year desc

SQL小提琴

相关问题