首页 > 解决方案 > SELECT best 50 results and GROUP BY id

问题描述

我有一个 MySQL 数据库,其中包含锦标赛及其玩家(参与者)的结果和详细信息,我想按降序检索所有玩家的所有最佳 50 分的总和。我试过这样的事情:

SELECT punctaj.id, ROUND(SUM(punctaj.punctaj_etapa)) AS puctaj_total, jucatori.nume 
FROM punctaj 
JOIN jucatori ON punctaj.id = jucatori.id 
WHERE sezon = 19 OR sezon = 20 OR sezon = 21 OR sezon = 22 OR sezon = 23 OR sezon = 24
GROUP BY punctaj.id 
ORDER BY puctaj_total DESC 

但这会返回所有结果的总和,我只需要获得最佳 50 分的总和。所以我认为我需要一个子查询来对最好的 50 名玩家使用降序或类似的限制。该表如下所示:

在此处输入图像描述

请指教!谢谢!

更新: 我想检索每个球员和特定赛季的 50 最佳得分总和(我将添加到 WHERE 子句中)。我附上的图像是针对punctaj表格的,我没有为表格添加图像,jucatori因为我认为它并没有真正的帮助,因为它包含一些带有一些 ID 的名称,我在这些名称上进行 JOIN 以获得每个玩家的名称,具体取决于他的个人身份证。所以jucatori包含两列:idnume。结果不需要按季节分组,我只需要得到我在 WHERE 子句中添加的季节的最佳 50 个结果的总和。如果我添加 a LIMIT 50,我相信这应该在SUM计算之前添加,所以我相信它需要一个子查询,但我对 MySQL 没有太多经验。

标签: phpmysql

解决方案


推荐阅读