Справка по MySQL - PullRequest
       4

Справка по MySQL

0 голосов
/ 19 июня 2009

У меня есть таблица mysql с именем RATING со следующей структурой:

ID, ИМЯ ПОЛЬЗОВАТЕЛЯ, РЕЙТИНГ, РЕЙТЕР, МЕСЯЦ

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

Например:

1, Боб, 10, Рита, Июль

2, Боб, 8, Сью, JUL

3, Рита, 9, Боб, Джул

4, Сью, 4, Рита, Июль

5, Рита, 10, Сью, Июль

Я хочу запрос SQL, который бы дал следующие результаты:

Рита: 9,5

Боб: 9

Сью: 4

Есть идеи, пожалуйста?

Большое спасибо

Оливер.

Ответы [ 3 ]

2 голосов
/ 19 июня 2009
select username, avg(rating), month from RATING group by username,month

Видя, что у вас в месяце «июль», я предполагаю, что это varchar. Если вы просто хотите получить результаты за июль:

select username, avg(rating) from RATING where month = 'JUL' group by username
2 голосов
/ 19 июня 2009

Предполагая, что столбцом месяца является datetime:

select username, avg(rating)
from rating
where YEAR(curdate()) = YEAR(rating.month)
and MONTH(curdate()) = MONTH(rating.month)
group by username

Если это первые 3 символа месяца, замените выражение WHERE на:

where LEFT(MONTHNAME(curdate()),3) = rating.month
1 голос
/ 19 июня 2009
SELECT `username`, AVG(`rating`) AS average FROM RATING GROUP BY `username`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...