
- •Перечень запросов,
- •Выборка с использованием фразы where и упорядочением.
- •Агрегирование данных.
- •Агрегирование данных с использованием фразы having.
- •Естественное соединение таблиц
- •Соединение таблицы со своей копией
- •Вложенные подзапросы
- •Объединение запросов
- •Представления
- •Создание таблиц и заполнение их данными
Агрегирование данных.
21. Сколько "Алексеев" в таблице Н_люди? Результат выдать в виде одной текстовой строки вида: "Алексей - 123".
22. Определить количество различных имен людей в таблице Н_ЛЮДИ, удалив из результата пробелы, точки и однобуквенные имена (см. запрос 20).
23. Определите вашу среднюю оценку (естественно, что в расчет должны входить лишь те оценки, которые имеют цифровой эквивалент). Создайте два запроса, в которых средняя оценки определяется с помощью функции среднее значение (функция AVG) и путем деления суммы (функция SUM) оценок на их количество (функция COUNT). В результате необходимо оставить два десятичных знака после запятой.
Для округления используется функция ROUND(expr [,m]), возвращающая expr, округленное до m-го десятичного знака; если m опущено, то оно принимается равным 0, а если m < 0, то округляются цифры левее десятичной точки.
24. Сколько всего людей с фамилией Иванов и сколько у них различных имен и различных отчеств. Для получения результата использовать один запрос со следующими псевдонимами столбцов: Всего, Разных_имен, Разных_отчеств. В результат не должны включаться имена (отчества) в виде пробелов, точек и однобуквенных имен (см. запрос 20).
Проверку можно осуществить путем вывода списков Ивановых с неповторяющимися именами и с неповторяющимися отчествами.
Агрегирование данных с использованием фразы having.
25. Выдать различные:
фамилии людей и число людей с каждой из этих фамилий, ограничив список фамилиями, встречающимися не менее 50 раз.
имена людей и число людей с каждым из этих имен, ограничив список именами, встречающимися не менее 300 раз.
отчества людей и число людей с каждым из этих отчеств, ограничив список отчествами, встречающимися не менее 300 раз.
Списки упорядочить по уменьшению количества фамилий (имен или отчеств).
26. Найти группы, в которых 4.7.2004 было менее десяти обучающихся студентов.
27. В таблице Н_ГРУППЫ_ПЛАНОВ найти номера планов, по которым обучается (обучалось) более 4 групп.
Естественное соединение таблиц
28. Используя опыт, полученный при реализации запроса 23, выведите таблицу со средними оценками студентов вашей группы (Номер, ФИО, Ср_оценка).
При составлении запроса следует учитывать, что группы с таким же номером существовали и в прошлые годы, а присутствие студента в вашей группе должно быть подтверждено утвержденным приказом.
29. Выполнить предыдущий запрос используя для получения номера, фамилии, имени и отчества студента не функцию Человек, а текстовую строку, полученную из таблицы Н_ЛЮДИ примерно так, как формировался запрос 8.
30. Составить запрос, позволяющий получить таблицу направлений (специальностей и специализаций), имеющую следующий вид:
-
ИД
Уров
Дата_ГОС
Направление/специальность
Тип стандарта
68
3
01.03.1995
552800
Информатика и вычислительная техника
Направление подготовки магистров
143
3
01.03.1995
552811
Базы данных
Магистерская программа
144
3
01.03.1995
552813
Сети ЭВМ и телекоммуникации
Магистерская программа
145
3
01.03.1995
552820
Системы реального времени
Магистерская программа
700
3
01.03.2000
220100
Вычислительные машины, комплексы, системы и сети
Специальность
1251
3
01.03.2000
220104
Системы телекоммуникаций и компьютерной безопасности
Специализация
792
3
01.03.2000
220109
Технология разработки программных систем
Специализация
1250
3
01.03.2000
220111
Открытые информационно-вычислительные системы
Специализация
1249
3
01.03.2000
220112
Информационно-управляющие системы
Специализация
31. Преобразовать предыдущий запрос так, чтобы в получаемой таблице перед столбцом «Тип стандарта» появился столбец «Квалификация»
32. Получить список студентов, зачисленных первого сентября позапрошлого учебного года на первый курс очной формы обучения специальности 220100. В результат включить:
номер группы,
номер, фамилию, имя и отчество студента,
номер и состояние пункта приказа,
признак, характеризующий состояние студента,
дату конца действия этого пункта,
Результат упорядочить по номеру группы и фамилии.
33. Получить список студентов, по условиям п. 32, сохранив в нем только те строки, в которых состояние пунктами приказа равно 'утвержден'.
34. Получить список студентов по условиям п. 33, но только на конец учебного года (31 августа).