Основы языка TRANSACT SQL. Казакова И.А. - 80 стр.

UptoLike

Составители: 

79
В подзапросе вычисляется среднее значение стипендии. Во внеш-
нем запросе SELECT используется как для вычисления отклонения
количества от среднего уровня, так и для отбора сведений о ФИО.
Пример 60. Определить предметы, по которым средний балл
больше 3:
SELECT ls.Nazvanie AS Название предмета, AVG
(pr.Examen) AS Средний балл
FROM Lessons ls, Progress pr
WHERE pr.ID_Lesson=ls.ID_Lesson
GROUP BY ls.Nazvanie
HAVING AVG (pr.Examen) > 3;
Результат выполнения запроса приведен на рис. 27.
Рис. 27. Вспомогательный запрос для примера 61
Пример 61. Определить предметы, по которым средний балл
оказался больше среднего балла по всем предметам вообще.
К запросу, приведенному в примере 60, добавим подзапрос:
SELECT ls.Nazvanie AS Название предмета,
AVG(pr.Examen) AS Средний балл
FROM Lessons ls, Progress pr
WHERE pr.ID_Lesson=ls.ID_Lesson
GROUP BY ls.Nazvanie
HAVING AVG (pr.Examen) > ( SELECT AVG (examen)
FROM Progress);
Результат выполнения запроса приведен на рис. 28.
Рис. 28. SELECT с GROUP BY и HAVING
     В подзапросе вычисляется среднее значение стипендии. Во внеш-
нем запросе SELECT используется как для вычисления отклонения
количества от среднего уровня, так и для отбора сведений о ФИО.
     Пример 60. Определить предметы, по которым средний балл
больше 3:
     SELECT ls.Nazvanie AS Название предмета, AVG
(pr.Examen) AS Средний балл
     FROM Lessons ls, Progress pr
     WHERE pr.ID_Lesson=ls.ID_Lesson
     GROUP BY ls.Nazvanie
     HAVING AVG (pr.Examen) > 3;
     Результат выполнения запроса приведен на рис. 27.




          Рис. 27. Вспомогательный запрос для примера 61

     Пример 61. Определить предметы, по которым средний балл
оказался больше среднего балла по всем предметам вообще.
     К запросу, приведенному в примере 60, добавим подзапрос:
     SELECT ls.Nazvanie AS Название предмета,
AVG(pr.Examen) AS Средний балл
     FROM Lessons ls, Progress pr
     WHERE pr.ID_Lesson=ls.ID_Lesson
     GROUP BY ls.Nazvanie
     HAVING AVG (pr.Examen) > ( SELECT AVG (examen)
                               FROM Progress);
     Результат выполнения запроса приведен на рис. 28.




              Рис. 28. SELECT с GROUP BY и HAVING
                               79