2016-10-30 3 views
2

У меня есть таблица, которая выглядит примерно так:SQL SUM() 3 лучших значения таблицы

имя_таблица: пользователь

name   points  id_subligue ... 
------------------------------------------ 
user1  100    1 
user2  200    1 
user3  300    1 
user4  400    1 

, когда я это сделать:

SELECT user.name, user.points AS TOTAL 
FROM user 
WHERE user.id_subligue='1' 
ORDER BY user.points DESC 
LIMIT 3 

Выход:

name  TOTAL 
------------------ 
user4  400 
user3  300 
user2  200 

Если я делаю t его:

SELECT SUM(user.points) AS TOTAL 
FROM user 
WHERE user.id_subligue='1' 
ORDER BY user.points DESC 
LIMIT 3 

Выход:

TOTAL 
----- 
1000 

Я желаю сумму 3 лучших пользователей по точкам! а не сумма всех пользователей с id_subligue = '1'. Итак, TOTAL = 900 Любые идеи? Что я делаю неправильно? o как я могу это сделать? Thanx!

Заголовок

ответ

1
select  SUM(user.points) AS TOTAL 

from  (SELECT user.points 
      FROM user 
      WHERE user.id_subligue='1' 
      ORDER BY user.points DESC 
      LIMIT 3 
      ) user 
+0

Спасибо, очень! работает отлично! – agustincola

+0

Мое удовольствие :-) –

+0

Жаль еще! В пользователе таблицы у меня есть другое «имя» в разных «id_subligue», поэтому я бы хотел, чтобы для каждой сублигии ... не просто user.id_subligue = '1'. Я надеюсь, что это ясно, что я хочу, и вы можете мне помочь. Заранее спасибо! Например: id_subligue 1 = 900; id_subligue 2 = xxx ... – agustincola

2

Если сгруппировать результаты запроса пользователей, вы получите суммы очков для каждого пользователя.

SELECT SUM(user.points) AS TOTAL, user.name 
FROM user 
WHERE user.id_subligue='1' 
GROUP BY user.name 
ORDER BY user.points DESC 
LIMIT 3 
+0

Привет Aycan! это не то, что я хочу! Мне нужна сумма из трех лучших точек пользователя в TOTAL. Его решает Дуду Марковиц. Спасибо! – agustincola

+0

@ agustincola Итак, я думаю, вы выбрали мой ответ как правильный ответ по ошибке. Вы можете выбрать ответ Дуду Марковица, вместо моего. –

+0

Да! Извините, кажется, я очень новый. Спасибо Айкан! – agustincola

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