Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / GOUP BY / 10 сообщений из 10, страница 1 из 1
06.11.2013, 11:11:53
    #38454125
Тимохич
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GOUP BY
Вообщем задали задачку: Выведите преподавателей, у которых среднее значение выставляемых оценок больше 3.
Я составил такой запрос:
Код: sql
1.
2.
3.
4.
5.
SELECT Lecturer.Family,AVG(Exam.Mark)
    FROM Lecturer,Exam
    WHERE Exam.Lect_id=Lecturer.Lect_id
    AND AVG(Exam.Mark)>3
    GROUP BY Lecturer.Family;


Выдает ошибку использования групировки.
Если убрать строчку AND AVG(Exam.Mark)>3 то выводит всех преподавателей.
Как правильно составить запрос?
...
Рейтинг: 0 / 0
06.11.2013, 11:56:42
    #38454219
GOUP BY
почитать про HAVING
...
Рейтинг: 0 / 0
06.11.2013, 12:01:37
    #38454231
Тимохич
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GOUP BY
Добрый Э - Эх,
Спасибо помогло, но мы его еще не проходили,без него не как нельзя?
...
Рейтинг: 0 / 0
06.11.2013, 12:19:59
    #38454256
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GOUP BY
Код: sql
1.
2.
3.
4.
5.
6.
select family from (
SELECT Lecturer.Family,AVG(Exam.Mark) q
    FROM Lecturer,Exam
    WHERE Exam.Lect_id=Lecturer.Lect_id
    GROUP BY Lecturer.Family
) t0 where q>3 ;

но тут используется подзапрос, вы их уже проходили? :)
...
Рейтинг: 0 / 0
06.11.2013, 12:28:27
    #38454277
Тимохич
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GOUP BY
tanglir,

к сожелению нет
...
Рейтинг: 0 / 0
06.11.2013, 12:49:08
    #38454321
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GOUP BY
ТимохичДобрый Э - Эх,
Спасибо помогло, но мы его еще не проходили,без него не как нельзя?

Нельзя. Читай.

Можно ещё корелированным подзапросом.
...
Рейтинг: 0 / 0
06.11.2013, 12:54:33
    #38454326
Тимохич
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GOUP BY
MasterZiv,

Ну тогда так и оставлю, Спасибо всем что помогли!
...
Рейтинг: 0 / 0
06.11.2013, 12:55:12
    #38454327
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GOUP BY
Тимохич,

врядли, что бы "проходили" агрегатные функции и "не проходили" HAVING ...

навсякий, "типа" без HAVING так ещё можно
Код: sql
1.
2.
3.
4.
5.
6.
7.
select *
from
    (SELECT Lecturer.Family,AVG(Exam.Mark) as avg_mark
    FROM Lecturer,Exam
    WHERE Exam.Lect_id=Lecturer.Lect_id
    GROUP BY Lecturer.Family) a
where avg_mark>3
...
Рейтинг: 0 / 0
06.11.2013, 13:00:24
    #38454337
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GOUP BY
Тимохич,

Собственно, там и проходить нечего. Она такая же, как WHERE, только
условия , содержащие агрегатные функции, можно писать только в HAVING, в остальном эта фраза ничем не отличается от where.
...
Рейтинг: 0 / 0
06.11.2013, 14:45:28
    #38454575
Тимохич
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GOUP BY
MasterZiv,
Какбы GROUР BY на самостоятельное изучение дали и я нигде не видел что используют еще HAVING, но теперь буду знать.
Еще раз спасибо!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / GOUP BY / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]