SUM后,在SQL中获取MAX值

时间:2016-01-24 12:48:05

标签: mysql

我在SQL中有一个表,其中包含1个student_id的2个点,如下图所示enter image description here

现在像这样有很多 Student_profile_ID Basketball_Match_ID 。我想让Student_profile_ID相同,然后在想要获得谁得分最高点之后添加积分。

我能够得到总和,但是无法获得最大值

SELECT student_profile_id,
       sum(point) as total_point 
from `basketball_points` 
where student_profile_id = {$value2} 
  AND basketball_match_id = {$key3}

Foreach循环帮助我增加PHP中的值。并检查所有结果

2 个答案:

答案 0 :(得分:3)

我认为您希望group by以及order bylimit。这是一个想法:

select student_profile_id, sum(point) as total_point
from `basketball_points`
where basketball_match_id = {$key3}
group by student_profile_id
order by total_point desc
limit 1;

注意:如果多名学生达到最高分,这只会给你一名学生。此外,还不清楚您是否需要where子句。

如果您想要所有学生的总积分,请忽略limit条款。

答案 1 :(得分:2)

只需使用:

SELECT 
    student_profile_id, 
    max(point) as max_point,
    sum(point) as total_points
FROM
    `basketball_points` 
WHERE student_profile_id = {$value2} AND basketball_match_id = {$key3}