2015-05-17 5 views
0

У меня есть таблица в моей базе данных, которая хранит таблицу пользователей таблицы, выглядит так.Как получить сумму оценки из таблицы mysql

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 

Здесь х> у> г 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

Что ожидаемый выход на основе данных, которую вы предоставили? –

+0

@MarkLeiber Я перепробовал вопрос –

ответ

1
SELECT user_id, MAX(user_score) as max_score 
    FROM your_table 
    GROUP BY user_id 
    ORDER BY max_score DESC 

должно быть тем, что вы ищете, если я правильно вас понял.

Он дает вам для каждого пользователя пользовательский user_id, а также самый высокий балл пользователя, отсортированный по рекордам.

Edit: Если вы ищете сумму всех баллов для каждого пользователя, этот запрос будет делать трюк вместо:

SELECT user_id, SUM(user_score) as score_sum 
    FROM your_table 
    GROUP BY user_id 
    ORDER BY score_sum DESC 
+0

SUM отлично работал спасибо. –

+0

и можно ли улучшить код выше ?. –

+0

Я не думаю, что 'SUM()' - это то, что вы ищете, оно даст вам сумму всех баллов одним пользователем. Что именно вы пытаетесь улучшить? Ваш PHP-код? – Timo

Смежные вопросы