レースチャンピオンシップの結果を保存するMySQLテーブルがあるので、すべての行に、他のデータの中でも、特定のレースでのすべてのドライバーの位置が含まれます。特定のドライバーの上位5位の合計を取得したい(たとえば、ドライバーの最高の位置が1、2、2、4、5の場合、MySQLに14を返したい)。私がやろうとしていることはこれです:
SELECT driver, SUM(position)
FROM results
WHERE (race, season, position) IN
(SELECT race, season, position
FROM results
WHERE driver = "Vettel"
ORDER BY position ASC
LIMIT 5)
AND driver = "Vettel"
もちろん、(レース、シーズン、ポジション)が「結果」テーブルの主キーです。さて、問題は、MySQLが内部サブクエリでのLIMITの使用をまだサポートしていないため、これを実際に機能させることができないことです。これをどのように行いますか?
そして、追加のクレジットとして、単一のドライバーの代わりに、単一のクエリですべてのドライバーの上位5つの結果の合計を取得する方法はありますか?