MySQL: как сложить все голы, забитые игроками - PullRequest
0 голосов
/ 27 февраля 2019

Я хотел бы спросить, как я могу суммировать все голы, забитые игроками за последние 7 дней.Название таблицы: player_games , поле с датой, в которую была сыграна игра, - game_played.

Я попытался суммировать результаты, но получил 0как результат для оценки.Последняя неделя, где не включены.

SELECT player_id as playerID, SUM('scores') as scores 
FROM `player_games` 
GROUP BY player_id 
ORDER BY SUM('scores') DESC

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Вы можете использовать следующее, используя DATE_SUB и CURDATE:

SELECT player_id AS playerID, SUM(scores) AS scores 
FROM player_games
WHERE game_played BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE()
GROUP BY player_id 
ORDER BY SUM(scores) DESC

Вы также можете использовать расчет даты непосредственно вусловие WHERE без использования DATE_SUB:

SELECT player_id AS playerID, SUM(scores) AS scores 
FROM player_games
WHERE game_played BETWEEN CURDATE() - INTERVAL 7 DAY AND CURDATE()
GROUP BY player_id 
ORDER BY SUM(scores) DESC
0 голосов
/ 27 февраля 2019
SELECT player_id as playerID, SUM(scores) as scores 
FROM `player_games` 
 WHERE game_played >= DATE(NOW()) - INTERVAL 7 DAY
GROUP BY player_id 
ORDER BY scores DESC
0 голосов
/ 27 февраля 2019

Возможно, вы ищете ИНТЕРВАЛ:

SELECT SUM(goals) FROM PLAYER_GAMES WHERE GAME_PLAYED >= CURDATE() - INTERVAL 7 DAY;

РЕДАКТИРОВАТЬ:

Не суммируйте строки (т. Е. Не используйте кавычки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...