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

UptoLike

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

72
SELECT gr.Name_group AS Группа, COUNT (DISTINCT
(pr.ID_Lesson)) AS Количество экзаменов
FROM Groups gr, Progress pr, Students st
WHERE st.ID_Student= pr.ID_Student AND
gr.ID_Group=st.ID_Group
AND EXISTS
(SELECT Examen FROM Progress)
GROUP BY gr.Name_group
HAVING COUNT (DISTINCT (pr.ID_Lesson))>3
Результат выполнения запроса приведен на рис. 23.
Рис. 23. Предложение HAVING в операторе SELECT
Пример 57. Вывести список групп, в которых средний балл > 3:
SELECT gr.Name_group AS Группа, AVG (pr.Examen) AS
Средний балл
FROM Groups gr, Progress pr, Students st
WHERE st.ID_Student= pr.ID_Student AND
gr.ID_Group=st.ID_Group
GROUP BY gr.Name_group
HAVING AVG (pr.Examen)>3
Результат выполнения запроса приведен на рис. 24.
Рис. 24. Предложение HAVING в операторе SELECT
Краткие итоги
Команда SELECT не изменяет данные в базе данных.
Формат команды SELECT:
SELECT [предикат ]
{ * | мя_столбца [AS новое_имя] ] } [,...n]
      SELECT gr.Name_group AS Группа, COUNT (DISTINCT
(pr.ID_Lesson)) AS Количество экзаменов
      FROM Groups gr, Progress pr, Students st
      WHERE st.ID_Student= pr.ID_Student AND
gr.ID_Group=st.ID_Group
      AND EXISTS
      (SELECT Examen FROM Progress)
      GROUP BY gr.Name_group
      HAVING COUNT (DISTINCT (pr.ID_Lesson))>3
      Результат выполнения запроса приведен на рис. 23.




         Рис. 23. Предложение HAVING в операторе SELECT

     Пример 57. Вывести список групп, в которых средний балл > 3:
     SELECT gr.Name_group AS Группа, AVG (pr.Examen) AS
Средний балл
     FROM Groups gr, Progress pr, Students st
     WHERE st.ID_Student= pr.ID_Student AND
gr.ID_Group=st.ID_Group
     GROUP BY gr.Name_group
     HAVING AVG (pr.Examen)>3
     Результат выполнения запроса приведен на рис. 24.




         Рис. 24. Предложение HAVING в операторе SELECT

                         Краткие итоги
     Команда SELECT не изменяет данные в базе данных.
     Формат команды SELECT:
     SELECT [предикат ]
     { * | [имя_столбца [AS новое_имя] ] } [,...n]

                                72