Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从mysql中的表中检索5个最高分的总和_Php_Html_Mysql_Sql_Codeigniter 2 - Fatal编程技术网

Php 从mysql中的表中检索5个最高分的总和

Php 从mysql中的表中检索5个最高分的总和,php,html,mysql,sql,codeigniter-2,Php,Html,Mysql,Sql,Codeigniter 2,我正在从事一个项目,在这个项目中,我需要从表中提取按降序排序的每个团队的前5名得分和排名。 这是表格结构 这是结构的链接 这就是我正在尝试的问题 SELECT team_id AS `team` , (SELECT SUM(score_rank) FROM `contest_result_total` WHERE team = `team_id` ORDER BY score_rank DESC LIMIT 5 ) AS `score` FROM `contest_result_total`

我正在从事一个项目,在这个项目中,我需要从表中提取按降序排序的每个团队的前5名得分和排名。 这是表格结构

这是结构的链接

这就是我正在尝试的问题

SELECT team_id AS `team` ,  (SELECT SUM(score_rank)
FROM `contest_result_total`
WHERE team = `team_id`
ORDER BY score_rank DESC
LIMIT 5
) AS `score`
FROM `contest_result_total`
GROUP BY team_id
ORDER BY `score` DESC
但它并没有给出前5名的分数,而是计算所有比赛的总和,而不仅仅是按球队id分组的5名

有人能帮我吗。 谢谢

试试这个:

SELECT team_id AS `team` ,  (SELECT SUM(score_rank)
FROM `contest_result_total`
WHERE team = `team_id`
GROUP BY team_id
ORDER BY score_rank DESC
LIMIT 5
) AS `score`
FROM `contest_result_total`
ORDER BY `score` DESC

我认为您的GROUP BY应该在内部查询中。在内部查询中添加GROUP BY会得到相同的结果。您能以文本格式而不是图像格式提供表数据,以便我们可以处理它吗?好的,我以数据格式提供给您,与我在评论中建议的相同,OP说它不起作用。没有给出正确的结果。你可以再试一次,我想我在子查询中的比较是错误的。它的作用如何非常感谢
SELECT team_id,sum(score_rank)
FROM contest_result_total
WHERE (SELECT COUNT(*)
      FROM contest_result_total AS c
      WHERE c.team_id = contest_result_total.team_id
        AND contest_result_total.score_rank <= c.score_rank) <= 5
GROUP BY team_id