mysql中每行最高x的总和
我有一个列(userid, score)
的MYSQL表。 我想将userid
组分组并得到一列,其中每个userid
的X分数最高。
例如,对于两个最高分数的总和:
userid | score
-------+-------
01 | 1
01 | 1
01 | 2
02 | 1
02 | 2
02 | 3
至:
userid | scoresum
-------+----------
01 | 3
02 | 5
但我似乎无法弄清楚如何在MYSQL中做到这一点。
select
userid,
(
select sum(highestscores)
from (
select *
from userscore us2
where us2.userid = us1.userid
order by score desc limit 5
)
) as scoresum
from ( select distinct userid from userscore ) us1
所以基本上你需要一个子查询来获得5个最高分。 然后将这些与另一个子查询相加。 并且您从唯一的唯一表usercore中为每个唯一的user_id运行整个业务。
select SUM(MAX(col.name)) From table name Group by usedid
这是一个简单的查询,为您提供所有数据。 现在你只需要将/,/分开top_scores,然后将它们添加到你的代码中。 另一种选择是存储过程,但我认为这更简单。 祝你好运。
select GROUP_CONCAT(score ORDER BY score DESC) top_scores
from userscore
group by userid
链接地址: http://www.djcxy.com/p/63771.html