我在SQL中有一个表,其中包含1个student_id的2个点,如下图所示
现在像这样有很多 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中的值。并检查所有结果
答案 0 :(得分:3)
我认为您希望group by
以及order by
和limit
。这是一个想法:
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}