Одна таблица в моей базе данных MySQL отслеживает ход игры. Он имеет следующую структуру:
SCENARIO_VICTORIES
[ID] [scenario_id] [game] [timestamp] [user_id] [winning_side] [play_date]
ID
- автоинкрементный первичный ключ. timestamp
записывает момент подачи для записи. winning_side
имеет одно из трех возможных значений: 1, 2 или 0 (означает ничью)
Один из запросов, выполненных в этой таблице, вычисляет процент побед для каждого сценария при просмотре страницы этого сценария. Выход выражается как:
- Сторона 1 победа%
- Победа 2-й стороны%
- Ничья%
и запрашивается с помощью:
SELECT winning_side, COUNT(scenario_id)
FROM scenario_victories WHERE scenario_id='$scenID'
GROUP BY winning_side ORDER BY winning_side ASC
, а затем обрабатывается в процентах и тому подобное.
Извините за долгую настройку. Моя проблема заключается в следующем: несколько моих пользователей играют друг с другом и записывают свои общие результаты. Таким образом, эти битвы вдвойне представлены в процентах побед и подсчете результатов. Хотя это случается нечасто, база пользователей невелика, и двойные записи оказывают заметное влияние на данные.
Учитывая приведенную выше таблицу и запрос - есть ли у кого-нибудь предложения, как мне «свернуть» записи с одинаковыми play_date & game & scenario_id & winning_side
, чтобы они учитывались только один раз?