Всем привет, особенно тем, кто еще меня помнит )))
Возник такой, казалось бы, элементарный вопрос про sql запрос. Но в мускуле не слишком силен, так что если кто поможет, был бы очень признателен.
Задача в следующем: нужно извлечь среднее значение из одной таблицы, по данным из другой.
Первая таблица (id, partner_id), Вторая таблица (partner_id, mark).
Нужно извлечь всех партнеров из первой таблицы и добавить в вывод среднюю оценку данного партнера. Для конкретного партнера среднее значение беру так: SELECT ROUND(AVG(mark)) FROM tab2
WHERE partner_id
= 'id_парнера'.
А как эти 2 запроса склеить в один (и можно ли вообще) ума не приложу.
Форум → Программирование → Общие вопросы программирования → SQL выборка среднего значения по данным из 2-х таблиц
SQL выборка среднего значения по данным из 2-х таблиц
-
from TRIAL with LOVE
-
-
Дек. 15, 2015, 3:33 д.п., спустя 4 минуты 19 секунд
да банально же что-то типа
select t1.id, t1.partner_id, ROUND(AVG(t2.mark)) from tab1 t1 left join tab2 t2 on t1.partner_id = t2.partner_id group by 2
-
Дек. 15, 2015, 4:54 д.п., спустя 1 час 20 минут 41 секунду
По описанию задачи не вижу смысла затрагивать первую таблицу вообще. Поэтому
SELECT partner_id, AVG(mark) AS mark FROM table2 GROUP BY partner_id
Спустя 289 сек.Но, допустим, нужно получить результат
id, partner_id, AVG(mark)
т.е. может быть несколько разных id с одинаковым partner_id
пусть нам нужны id = 1,3,5SELECT t1.id, t1.partner_id, t2.mark
FROM t1
LEFT JOIN (SELECT partner_id, AVG(mark) AS mark FROM table2 GROUP BY partner_id) AS t2 ON(t1.partner_id=t2.partner_id)
WHERE t1.id IN (1,3,5)Спустя 192 сек.вот:
SELECT t1.id, t1.partner_id, AVG(t2.mark) FROM t1 LEFT JOIN t2 ON (t1.partner_id=t2.partner_id) GROUP BY t1.id, t1.partner_id
не всё полезно, что в swap полезло -
Дек. 15, 2015, 5:12 д.п., спустя 17 минут 41 секунду
Ох, спасибо огромное. Кому элементарно а кто-то до сих пор ни черта не освоил нормальную выборку из пары таблиц ))
from TRIAL with LOVE -
Дек. 15, 2015, 5:21 д.п., спустя 9 минут 34 секунды
Ох, спасибо огромное. Кому элементарно а кто-то до сих пор ни черта не освоил нормальную выборку из пары таблиц ))
@TRIAL, так этож позор
Сапожник без сапог
Пожалуйста, авторизуйтесь, чтобы написать комментарий!