В общем есть две таблицы: группы (id, название) и пользователи (id, id группы в которой состоит, рейтинг). Нужно найти количество групп, среднее арифметическое рейтинга членов которых больше среднего арифметического какой-то конкретной группы.
Бьюсь уже очень долго, никак не выходит... Вот так ошибка, хотя это самое лучшее решение из тех, что у меня было.. Моя задача вообще выполнима без php?
SELECT
AVG(rating) as this_rating,
(SELECT COUNT(*), u.AVG(rating) as avgr
LEFT JOIN users u ON groups.id=u.group_id
FROM groups
WHERE avgr>this_rating
) as rating_rang
FROM users
WHERE group_id='$group_id'
Примеры таблиц http://sqlfiddle.com/#!2/b01882
Примерно так:
SELECT
all_groups.group_id,
all_groups.rating
FROM
(SELECT AVG(rating) rating
FROM users
WHERE group_id = '$group_id') this_group
JOIN
(SELECT group_id, AVG(rating) rating
FROM users
GROUP BY group_id) all_groups
ON all_groups.rating > this_group.rating
Количество сами посчитаете?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости