Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 09.06.2019, 21:55   #1
fuzo
Пользователь
 
Регистрация: 16.09.2010
Сообщений: 40
Репутация: 10
Лампочка Запрос в MySQL с AVG функцией

Всем привет.
Столкнулся с проблемой при выполнении задачи:
Показать все предметы(sname) и преподавателей(tname), которые их преподают, и среднюю зарплату каждого преподавателя по университетам (LEFT JOINS, групповая функция AVG). 1 sql-команда.

Исходная база данных имеет следующий вид: http://prntscr.com/nzm2pu

Собственно запрос построенный на левых джоинах: http://prntscr.com/nzm29y

Как только добавляю функцию avg без условий происходит такое: http://prntscr.com/nzm3cg

И наконец единственный вариант к которому я созрел это добавить GROUP BY: http://prntscr.com/nzm4er
при этом AVG вроде бы как и подсчитывает, но обрезает пердметы и учителей, что как бы не по условию. К сожалению с гуглом разобраться не получилось.

Код:
select sname, tname, avg(wage)
from ((SUBJECT LEFT JOIN TEACHER ON subject.id_subject=teacher.id_subject)
 LEFT JOIN uniteacher ON uniteacher.id_teacher=teacher.id_teacher)
 GROUP BY uniteacher.id_university;
fuzo вне форума   Ответить с цитированием
Старый 10.06.2019, 10:09   #2
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,914
Репутация: 2242
По умолчанию

Код:
select qpredmet....,  qage....
from ( --  все предметы(sname) и преподавателей(tname), которые их преподают, 
       select id_teacher, ... 
      ) qpredmet
left join (  и среднюю зарплату каждого преподавателя по университетам
            select avg(wage) sage, id_teacher
            ...
            group by id_teacher
         ) qage on qage.id_teacher =qpredmet.id_teacher
Цитата:
(LEFT JOINS, групповая функция AVG).
__________________
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Старый 12.06.2019, 07:55   #3
fuzo
Пользователь
 
Регистрация: 16.09.2010
Сообщений: 40
Репутация: 10
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
select qpredmet....,  qage....
from ( --  все предметы(sname) и преподавателей(tname), которые их преподают, 
       select id_teacher, ... 
      ) qpredmet
left join (  и среднюю зарплату каждого преподавателя по университетам
            select avg(wage) sage, id_teacher
            ...
            group by id_teacher
         ) qage on qage.id_teacher =qpredmet.id_teacher
Общий смысл улавливаю но не получается сложить все воедино с вашими сокращениями)

Вот что получается: http://prntscr.com/o0qllv

Код:
select sname, tname, Awage
from (select sname, tname from subject
LEFT JOIN teacher ON subject.id_subject=teacher.id_subject) X
LEFT JOIN (select avg(wage) Awage, id_university from uniteacher GROUP BY id_university) Y
ON teacher.id_teacher=uniteacher.id_teacher;
sname - Имена предмета из таблицы SUBJECT
tname - Имена преподавательей из таблицы TEACHER
id_university - ключ универа в таблице UNITEACHER
wage - зарплата преподавателя

Последний раз редактировалось fuzo; 12.06.2019 в 09:04.
fuzo вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос в MySQL Rose16 SQL, базы данных 0 27.05.2017 23:02
MySql запрос Yulkaaa Помощь студентам 2 28.09.2011 15:24
Запрос mysql nitrofox PHP 1 27.08.2011 09:58
Запрос с функцией (с вычислемым полем) в Access постоянно обрабат, При слиянии с Word тормоза в 10раз > doslidnik Microsoft Office Access 3 15.12.2010 22:20
MySQL запрос в PHP Ensoph PHP 2 07.11.2010 17:19


17:08.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.