powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите сделать частичную сумму
7 сообщений из 7, страница 1 из 1
Помогите сделать частичную сумму
    #32739476
Беленький
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть связанные между собой таблицы: команды, игроки и очки игроков:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
# Команды
CREATE TABLE `TEAM` (
  `TeamID` int(10) unsigned NOT NULL default '0')

#Игроки
CREATE TABLE `Player` (
  `PlayerID` int(10) unsigned NOT NULL default '0')
  `TeamID` int(10) unsigned NOT NULL default '0')

#Очки
CREATE TABLE `Player_Result` (
  `PlayerID` int(10) unsigned NOT NULL default '0',
  `TeamID` int(10) unsigned NOT NULL default '0')
  `Bonus` int(10) unsigned NOT NULL default '0')

Мне нужна для каждой команды сумма очков 5 лучших играков. Можно это как-то сделать одним селектом? Что-то типа:
Код: plaintext
1.
SELECT TeamID, SUM(Bonus) FROM Player_Result GROUP BY TeamID
Но как отсортировать перед суммированием чтобы получились лучшие и как ограничить сумму только 5 лучших?

Пишу первый раз и прошу прощения, если будет выглядеть каряво :-)
...
Рейтинг: 0 / 0
Помогите сделать частичную сумму
    #32739758
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй так

Код: plaintext
1.
2.
3.
4.
SELECT TeamID, SUM(Bonus) FROM Player_Result
GROUP BY TeamID
Order BY Bonus DESC
LIMIT  5 
...
Рейтинг: 0 / 0
Помогите сделать частичную сумму
    #32740847
Беленький
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению LIMIT 5 относиться в таком случае к конечному количеству возвращаемых сумм, а не к кол-ву слогаемых.
...
Рейтинг: 0 / 0
Помогите сделать частичную сумму
    #32741573
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
придётся выписывать лучших игроков во временную таблицу.
ma X mo
...
Рейтинг: 0 / 0
Помогите сделать частичную сумму
    #32743360
ArtLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
SELECT TeamID, SUM(Bonus) AS SUM_ FROM Player_Result
GROUP BY TeamID
Order BY SUM_ DESC
LIMIT  5 

Если я правильно понял, то у пяти лучших игроков и суммы будут самые большие
...
Рейтинг: 0 / 0
Помогите сделать частичную сумму
    #32744264
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя какая-то база ненормализованная...

Зачем тебе таблица TEAM?
По логике вещей: команда содержит хотя бы одного игрока - соответственно вся требуемая информация будет храниться в таблице PLAYER.
Соответственно, в таблице PLAYER_RESULT колонка TeamID не нужна - ибо один игрок не может играть в разных командах одновременно.

А вот твой запрос:

Код: plaintext
1.
SELECT TeamID, sum(Bonus) FROM Player_Result group by TeamID order by Bonus desc limit  5 

Оно?
...
Рейтинг: 0 / 0
Помогите сделать частичную сумму
    #32745155
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эта будет суммировать очки всех игроков команды и выдавать результаты для первых пяти команд. А?
ma X mo
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите сделать частичную сумму
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]