【发布时间】:2012-12-26 23:17:03
【问题描述】:
我有一个 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 个结果的总和,而不是单个驱动程序?
【问题讨论】:
标签: mysql select group-by sum subquery