我的数据库中有一个表,用于存储用户表的分数,如下所示。
id user_id user_score
2748 371 3
2253 353 2
2254 353 2
2255 353 2
2256 353 2
2257 353 2
2258 353 2
2259 353 2
我想从这个表中计算每个用户的总分,并且需要输出这样的用户名
user_id user_Score
357 x
367 y
354 z
这里x> y> z 我写的PHP代码看起来像这样
<?php
//Expected query is contains user_id and user_query
$query="Expected query";
$connection=mysqli_connect("Connection varables");
$data=mysqli_query($connection,$query);
while($row=mysqli_fetch_array($data)){
echo "User name:";
echo $row['user_id'];
echo "</br>";
echo "Score:";
echo $row['user_score'];
echo "</br>";
}
?>
怎么做?。
答案 0 :(得分:1)
SELECT user_id, MAX(user_score) as max_score
FROM your_table
GROUP BY user_id
ORDER BY max_score DESC
如果我理解正确的话,应该是你要找的。 p>
它为每个用户提供了用户user_id
以及用户的最高分,按高分排序。
修改:如果您要查找每个用户所有分数的总和,则此查询将改为:
SELECT user_id, SUM(user_score) as score_sum
FROM your_table
GROUP BY user_id
ORDER BY score_sum DESC