Очень сложная выборка

137
15 декабря 2016, 15:43

В общем есть две таблицы: группы (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

Answer 1

Примерно так:

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

Количество сами посчитаете?

READ ALSO
Занесение фото в MySQL

Занесение фото в MySQL

Подскажите, какие поля формы и какими функциями PHP можно загрузить имя фотографии в SQL базу, и скопировать эту фотографию в определённую папку...

117
Ошибка Notice: Use of undefined constant

Ошибка Notice: Use of undefined constant

В цикле два раза подряд выполняется следующая функция:

166
Двойная фильтрация

Двойная фильтрация

Всем добрый деньПодскажите пожалуйста как решить задачку которая возникла

157