Mysql 一个有趣的SQL查询挑战-列出每个运动员前3名得分的平均值
上述查询应按预期工作Mysql 一个有趣的SQL查询挑战-列出每个运动员前3名得分的平均值,mysql,database,Mysql,Database,上述查询应按预期工作 上述查询应按预期工作。假设运动员和记录的组合是唯一的 SELECT ath_id , ROUND(AVG(record),2) top3_avg FROM ( SELECT x.* FROM athletes x JOIN athletes y ON y.ath_id = x.ath_id AND y.record >= x.record
上述查询应按预期工作。假设运动员和记录的组合是唯一的
SELECT ath_id
, ROUND(AVG(record),2) top3_avg
FROM
( SELECT x.*
FROM athletes x
JOIN athletes y
ON y.ath_id = x.ath_id
AND y.record >= x.record
GROUP
BY x.id
HAVING COUNT(*) <=3
) a
GROUP
BY ath_id;
假设运动员和记录的组合是唯一的
SELECT ath_id
, ROUND(AVG(record),2) top3_avg
FROM
( SELECT x.*
FROM athletes x
JOIN athletes y
ON y.ath_id = x.ath_id
AND y.record >= x.record
GROUP
BY x.id
HAVING COUNT(*) <=3
) a
GROUP
BY ath_id;
一些关键字供您搜索:分组依据、聚合函数、限制和排序依据。我知道这些分组依据、平均值、限制、排序依据,但不起作用。MySQL查询语句中是否有实用可行的解决方案?比“有趣”更“普通”一些关键字供您搜索:分组依据、聚合函数、限制和排序依据。我知道这些分组依据、平均值、限制、排序依据,但不起作用。MySQL查询语句中有没有实用可行的解决方案?比“有趣”更“普通”的哈希尔先生,太棒了,你是我的英雄!我只是想知道你作为db管理员或db用户作为应用程序开发人员工作了多少年?你真是太好了,但老实说,我现在只是个新手。2017年完成的大师。顺便说一句,你应该接受它作为答案,并投票表决,以便对未来的参观者有所帮助。哦,一个新的完成的大师,有希望!我把它投了更高的票,不是吗?如果没有,请告诉我如何做:-您可能已经投了较高的票,但不会显示/计算,因为您没有足够的声誉15投较高的票。因此,首先接受它作为答案,然后投票表决。哈希尔,太棒了,你是我的英雄!我只是想知道你作为db管理员或db用户作为应用程序开发人员工作了多少年?你真是太好了,但老实说,我现在只是个新手。2017年完成的大师。顺便说一句,你应该接受它作为答案,并投票表决,以便对未来的参观者有所帮助。哦,一个新的完成的大师,有希望!我把它投了更高的票,不是吗?如果没有,请告诉我如何做:-您可能已经投了较高的票,但不会显示/计算,因为您没有足够的声誉15投较高的票。因此,首先接受它作为答案,然后投票表决。
SELECT ath_id
, ROUND(AVG(record),2) top3_avg
FROM
( SELECT x.*
FROM athletes x
JOIN athletes y
ON y.ath_id = x.ath_id
AND y.record >= x.record
GROUP
BY x.id
HAVING COUNT(*) <=3
) a
GROUP
BY ath_id;