2016-01-24 64 views
2

我有其中包含2分1个student_id数据在一个比赛就像在下面的照片enter image description here获得最大的价值SQL SUM

现在这个样子SQL表中有很多Student_profile_IDBasketball_Match_ID 。我想让Student_profile_ID相同,然后在想要获得谁获得最高分之后添加分数。

我能总结然后但没有能够得到MAX值

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

我不明白你想要什么。你能告诉我们你期望的结果吗? – JesusTheHun

+0

我想你只是想'分组'。 –

+0

对于我来说,还不清楚为什么你在同一篮球比赛中为同一名球员保存多个分数,看起来像一个db设计错误给我。也不清楚其中最大的是什么。你的意思是一个玩家的最大单一得分'{$ value2}'一个玩家的最大总和,所有玩家之间的最大总和 –

回答

3

我想你想用order bylimit一起group by。这里的想法是:

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子句。

+0

嗯,谢谢你,所以我会处理你的答案 – Lakshya

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}