Лабораторная работа № 6.
Цель работы: Изучить встроенные и агрегатные функции. Научиться группировать данные.
Ход работы: Разработка ведется в демонстрационной базе данных World.
Вариант 1.
1. Составьте запросы.
| Найти общую площадь во всех странах. |
| Найти среднюю продолжительность жизни в части света Asia |
| Найти максимальную продолжительность жизни. |
| Найти общую площадь стран в регионе Western Europe, с населением выше 100 000 |
| Найти общее население (сумму) для каждого района из таблицы City. |
| Найти среднюю продолжительность жизни в каждом регионе (Region) в таблице country. |
| Найти части света (Continent) со средней продолжительностью жизни выше 75. |
2. Внимательно изучите данную таблицу R1.
| ID | Дата | Город | Клиент | Вес | Объем | Водитель |
| 2016-10-28 | Москва | Авангард | Иванов | |||
| 2016-10-31 | Челябинск | Барс | Иванов | |||
| 2016-10-31 | Москва | Транс-сити | Петров | |||
| 2016-10-31 | Москва | Барс | Сидоров | |||
| 2016-10-31 | Москва | Транс-сити | Лосев | |||
| 2016-10-29 | Челябинск | Транс-сити | Лосев | |||
| 2016-10-30 | Москва | Барс | Лосев | |||
| 2016-10-28 | Челябинск | Барс | 0,2 | Петров | ||
| 2016-10-30 | Москва | Транс-сити | Петров | |||
| 2016-10-29 | Копейск | Авангард | Иванов |
Укажите что получится в результате выполнения данных запросов:
| Запрос | Результат |
| SELECT MAX(ВЕС) FROM R1 | |
| SELECT SUM(ОБЪЕМ) FROM R1 WHERE ГОРОД = ' Москва ' | |
| SELECT ГОРОД, SUM(ОБЪЕМ) FROM R1 GROUP BY ГОРОД | |
| SELECT ВОДИТЕЛЬ, SUM(ВЕС) FROM R1 WHERE ВОДИТЕЛЬ IN (' Петров ', ' Лосев ') GROUP BY ВОДИТЕЛЬ |
Вариант 2.
1. Составьте запросы.
| Найти общую численность населения во всех городах. |
| Найти среднюю продолжительность жизни в странах с площадью выше 100000 |
| Найти максимальную численность населения в городах. |
| Найти общую площадь стран в регионе Western Europe, с населением выше 100 000 |
| Найти общее население (сумму) для каждого района из таблицы City. |
| Найти среднюю продолжительность жизни на каждом континенте в таблице country. |
| Вывести информацию вида: В городе N численность населения равна х |
2. Внимательно изучите данную таблицу R1.
| ID | Дата | Город | Клиент | Вес | Объем | Водитель |
| 2016-10-28 | Москва | Авангард | Иванов | |||
| 2016-10-31 | Челябинск | Барс | Иванов | |||
| 2016-10-31 | Москва | Транс-сити | Петров | |||
| 2016-10-31 | Москва | Барс | Сидоров | |||
| 2016-10-31 | Москва | Транс-сити | Лосев | |||
| 2016-10-29 | Челябинск | Транс-сити | Лосев | |||
| 2016-10-30 | Москва | Барс | Лосев | |||
| 2016-10-28 | Челябинск | Барс | 0,2 | Петров | ||
| 2016-10-30 | Москва | Транс-сити | Петров | |||
| 2016-10-29 | Копейск | Авангард | Иванов |
Укажите что получится в результате выполнения данных запросов:
| Запрос | Результат |
| SELECT MIN(ОБЪЕМ) FROM R1 | |
| SELECT SUM(ВЕС) FROM R1 WHERE ДАТА = ' 2016-10-31 ' | |
| SELECT ГОРОД, SUM(ВЕС) FROM R1 GROUP BY ГОРОД | |
| SELECT ВОДИТЕЛЬ, COUNT(*) FROM R1 WHERE ВОДИТЕЛЬ IN (' Петров ', ' Лосев ') GROUP BY ВОДИТЕЛЬ |
Вариант 3.
1. Составьте запросы.
| Найти среднее, максимальное и минимальное значения поля Percentage в таблице countrylanguage |
| Найти количество стран, где официальный язык Dutch |
| Определить количество языков в стране с кодом «CAN» |
| Определить количество языков в стране с кодом «CAN» и процентом ниже 50 |
| Найти количество языков для каждого кода страны. |
| Найти максимальный процент для каждого кода страны. |
| Найти количество стран для каждого официального языка. |
2. Внимательно изучите данную таблицу R1.
| ID | Дата | Город | Клиент | Вес | Объем | Водитель |
| 2016-10-28 | Москва | Авангард | Иванов | |||
| 2016-10-31 | Челябинск | Барс | Иванов | |||
| 2016-10-31 | Москва | Транс-сити | Петров | |||
| 2016-10-31 | Москва | Барс | Сидоров | |||
| 2016-10-31 | Москва | Транс-сити | Лосев | |||
| 2016-10-29 | Челябинск | Транс-сити | Лосев | |||
| 2016-10-30 | Москва | Барс | Лосев | |||
| 2016-10-28 | Челябинск | Барс | 0,2 | Петров | ||
| 2016-10-30 | Москва | Транс-сити | Петров | |||
| 2016-10-29 | Копейск | Авангард | Иванов |
Укажите что получится в результате выполнения данных запросов:
| Запрос | Результат |
| SELECT COUNT(ВЕС) FROM R1 | |
| SELECT SUM(ОБЪЕМ) FROM R1 WHERE ДАТА = ' 2016-10-28 ' | |
| SELECT КЛИЕНТ, COUNT(КЛИЕНТ) FROM R1 GROUP BY КЛИЕНТ | |
| SELECT ВОДИТЕЛЬ, MAX(ВЕС) FROM R1 WHERE ВОДИТЕЛЬ IN (' Петров ', ' Лосев ') GROUP BY ВОДИТЕЛЬ |
Вариант 4.
1. Составьте запросы.
| Найти среднее, максимальное и минимальное значения поля Percentage в таблице countrylanguage |
| Найти количество стран, где официальный язык Dutch |
| Определить количество языков в стране с кодом «CAN» |
| Определить количество языков в стране с кодом «CAN» и процентом ниже 50 |
| Найти количество языков для каждого кода страны. |
| Найти максимальный процент для каждого кода страны. |
| Найти количество стран для каждого официального языка. |
2. Внимательно изучите данную таблицу R1.
| ID | Дата | Город | Клиент | Вес | Объем | Водитель |
| 2016-10-28 | Москва | Авангард | Иванов | |||
| 2016-10-31 | Челябинск | Барс | Иванов | |||
| 2016-10-31 | Москва | Транс-сити | Петров | |||
| 2016-10-31 | Москва | Барс | Сидоров | |||
| 2016-10-31 | Москва | Транс-сити | Лосев | |||
| 2016-10-29 | Челябинск | Транс-сити | Лосев | |||
| 2016-10-30 | Москва | Барс | Лосев | |||
| 2016-10-28 | Челябинск | Барс | 0,2 | Петров | ||
| 2016-10-30 | Москва | Транс-сити | Петров | |||
| 2016-10-29 | Копейск | Авангард | Иванов |
Укажите что получится в результате выполнения данных запросов:
| Запрос | Результат |
| SELECT COUNT(ВЕС) FROM R1 | |
| SELECT SUM(ОБЪЕМ) FROM R1 WHERE ДАТА = ' 2016-10-28 ' | |
| SELECT КЛИЕНТ, COUNT(КЛИЕНТ) FROM R1 GROUP BY КЛИЕНТ | |
| SELECT ВОДИТЕЛЬ, MAX(ВЕС) FROM R1 WHERE ВОДИТЕЛЬ IN (' Петров ', ' Лосев ') GROUP BY ВОДИТЕЛЬ |
Вариант 5.
1. Составьте запросы.
- Найти средний ВВП (GNP) всех стран.
- Найти максимальный ВВП
- Найти минимальный ВВП на континенте Asia.
- Найти общий ВВП в регионе Middle East, с площадью выше 50 000
- Найти средний ВВП для каждого региона.
- Найти средний ВВП для каждой пары континент/регион
- Вывести информацию вида:
В стране N ВВП = х
Где вместо N – название страны,
вместо х – ВВП этой страны
2. Внимательно изучите данную таблицу R1.
| ID | Дата | Товар | Клиент | Количество | Цена | Менеджер |
| 2016-10-28 | Сыр | Авангард | Иванов | |||
| 2016-10-31 | Масло | Барс | Иванов | |||
| 2016-10-31 | Колбаса | Транс-сити | Петров | |||
| 2016-10-31 | Колбаса московская | Барс | Сидоров | |||
| 2016-10-31 | Колбаса докторская | Транс-сити | Лосев | |||
| 2016-10-29 | Сыр | Транс-сити | Лосев | |||
| 2016-10-30 | Масло | Барс | Лосев | |||
| 2016-10-28 | Колбаса | Барс | 500.5 | Петров | ||
| 2016-10-30 | Икра | Транс-сити | 505.8 | Петров | ||
| 2016-10-29 | Мука | Авангард | Иванов |
Укажите что получится в результате выполнения данных запросов:
| Запрос | Результат |
| SELECT MIN(количество) FROM R1 | |
| SELECT SUM(количество*цена) FROM R1 WHERE ДАТА = ' 2016-10-31 ' | |
| SELECT товар, MAX(цена) FROM R1 GROUP BY товар | |
| SELECT клиент, COUNT(*) FROM R1 WHERE менеджер IN (' Петров ', ' Лосев ') GROUP BY клиент |
Вариант 6.
1. Составьте запросы.
| Найти общую площадь во всех странах. |
| Найти среднюю продолжительность жизни в части света Asia |
| Найти максимальную продолжительность жизни. |
| Найти общую площадь стран в регионе Western Europe, с населением выше 100 000 |
| Найти общее население (сумму) для каждого района из таблицы City. |
| Найти среднюю продолжительность жизни в каждом регионе (Region) в таблице country. |
| Найти части света (Continent) со средней продолжительностью жизни выше 75. |
2. Внимательно изучите данную таблицу R1.
| ID | Дата | Город | Клиент | Вес | Объем | Водитель |
| 2016-10-28 | Москва | Авангард | Иванов | |||
| 2016-10-31 | Челябинск | Барс | Иванов | |||
| 2016-10-31 | Москва | Транс-сити | Петров | |||
| 2016-10-31 | Москва | Барс | Сидоров | |||
| 2016-10-31 | Москва | Транс-сити | Лосев | |||
| 2016-10-29 | Челябинск | Транс-сити | Лосев | |||
| 2016-10-30 | Москва | Барс | Лосев | |||
| 2016-10-28 | Челябинск | Барс | 0,2 | Петров | ||
| 2016-10-30 | Москва | Транс-сити | Петров | |||
| 2016-10-29 | Копейск | Авангард | Иванов |
Укажите что получится в результате выполнения данных запросов:
| Запрос | Результат |
| SELECT MAX(ВЕС) FROM R1 | |
| SELECT SUM(ОБЪЕМ) FROM R1 WHERE ГОРОД = ' Москва ' | |
| SELECT ГОРОД, SUM(ОБЪЕМ) FROM R1 GROUP BY ГОРОД | |
| SELECT ВОДИТЕЛЬ, SUM(ВЕС) FROM R1 WHERE ВОДИТЕЛЬ IN (' Петров ', ' Лосев ') GROUP BY ВОДИТЕЛЬ |
Вариант 7.
1. Составьте запросы.
| Найти общую численность населения во всех городах. |
| Найти среднюю продолжительность жизни в странах с площадью выше 100000 |
| Найти максимальную численность населения в городах. |
| Найти общую площадь стран в регионе Western Europe, с населением выше 100 000 |
| Найти общее население (сумму) для каждого района из таблицы City. |
| Найти среднюю продолжительность жизни на каждом континенте в таблице country. |
| Вывести информацию вида: В городе N численность населения равна х |
2. Внимательно изучите данную таблицу R1.
| ID | Дата | Город | Клиент | Вес | Объем | Водитель |
| 2016-10-28 | Москва | Авангард | Иванов | |||
| 2016-10-31 | Челябинск | Барс | Иванов | |||
| 2016-10-31 | Москва | Транс-сити | Петров | |||
| 2016-10-31 | Москва | Барс | Сидоров | |||
| 2016-10-31 | Москва | Транс-сити | Лосев | |||
| 2016-10-29 | Челябинск | Транс-сити | Лосев | |||
| 2016-10-30 | Москва | Барс | Лосев | |||
| 2016-10-28 | Челябинск | Барс | 0,2 | Петров | ||
| 2016-10-30 | Москва | Транс-сити | Петров | |||
| 2016-10-29 | Копейск | Авангард | Иванов |
Укажите что получится в результате выполнения данных запросов:
| Запрос | Результат |
| SELECT MIN(ОБЪЕМ) FROM R1 | |
| SELECT SUM(ВЕС) FROM R1 WHERE ДАТА = ' 2016-10-31 ' | |
| SELECT ГОРОД, SUM(ВЕС) FROM R1 GROUP BY ГОРОД | |
| SELECT ВОДИТЕЛЬ, COUNT(*) FROM R1 WHERE ВОДИТЕЛЬ IN (' Петров ', ' Лосев ') GROUP BY ВОДИТЕЛЬ |
Вариант 8.
1. Составьте запросы.
| Найти среднее, максимальное и минимальное значения поля Percentage в таблице countrylanguage |
| Найти количество стран, где официальный язык Dutch |
| Определить количество языков в стране с кодом «CAN» |
| Определить количество языков в стране с кодом «CAN» и процентом ниже 50 |
| Найти количество языков для каждого кода страны. |
| Найти максимальный процент для каждого кода страны. |
| Найти количество стран для каждого официального языка. |
2. Внимательно изучите данную таблицу R1.
| ID | Дата | Город | Клиент | Вес | Объем | Водитель |
| 2016-10-28 | Москва | Авангард | Иванов | |||
| 2016-10-31 | Челябинск | Барс | Иванов | |||
| 2016-10-31 | Москва | Транс-сити | Петров | |||
| 2016-10-31 | Москва | Барс | Сидоров | |||
| 2016-10-31 | Москва | Транс-сити | Лосев | |||
| 2016-10-29 | Челябинск | Транс-сити | Лосев | |||
| 2016-10-30 | Москва | Барс | Лосев | |||
| 2016-10-28 | Челябинск | Барс | 0,2 | Петров | ||
| 2016-10-30 | Москва | Транс-сити | Петров | |||
| 2016-10-29 | Копейск | Авангард | Иванов |
Укажите что получится в результате выполнения данных запросов:
| Запрос | Результат |
| SELECT COUNT(ВЕС) FROM R1 | |
| SELECT SUM(ОБЪЕМ) FROM R1 WHERE ДАТА = ' 2016-10-28 ' | |
| SELECT КЛИЕНТ, COUNT(КЛИЕНТ) FROM R1 GROUP BY КЛИЕНТ | |
| SELECT ВОДИТЕЛЬ, MAX(ВЕС) FROM R1 WHERE ВОДИТЕЛЬ IN (' Петров ', ' Лосев ') GROUP BY ВОДИТЕЛЬ |
Вариант 9.
1. Составьте запросы.
| Найти среднее, максимальное и минимальное значения поля Percentage в таблице countrylanguage |
| Найти количество стран, где официальный язык Dutch |
| Определить количество языков в стране с кодом «CAN» |
| Определить количество языков в стране с кодом «CAN» и процентом ниже 50 |
| Найти количество языков для каждого кода страны. |
| Найти максимальный процент для каждого кода страны. |
| Найти количество стран для каждого официального языка. |
2. Внимательно изучите данную таблицу R1.
| ID | Дата | Город | Клиент | Вес | Объем | Водитель |
| 2016-10-28 | Москва | Авангард | Иванов | |||
| 2016-10-31 | Челябинск | Барс | Иванов | |||
| 2016-10-31 | Москва | Транс-сити | Петров | |||
| 2016-10-31 | Москва | Барс | Сидоров | |||
| 2016-10-31 | Москва | Транс-сити | Лосев | |||
| 2016-10-29 | Челябинск | Транс-сити | Лосев | |||
| 2016-10-30 | Москва | Барс | Лосев | |||
| 2016-10-28 | Челябинск | Барс | 0,2 | Петров | ||
| 2016-10-30 | Москва | Транс-сити | Петров | |||
| 2016-10-29 | Копейск | Авангард | Иванов |
Укажите что получится в результате выполнения данных запросов:
| Запрос | Результат |
| SELECT COUNT(ВЕС) FROM R1 | |
| SELECT SUM(ОБЪЕМ) FROM R1 WHERE ДАТА = ' 2016-10-28 ' | |
| SELECT КЛИЕНТ, COUNT(КЛИЕНТ) FROM R1 GROUP BY КЛИЕНТ | |
| SELECT ВОДИТЕЛЬ, MAX(ВЕС) FROM R1 WHERE ВОДИТЕЛЬ IN (' Петров ', ' Лосев ') GROUP BY ВОДИТЕЛЬ |
Вариант 10.
1. Составьте запросы.
| Найти средний ВВП (GNP) всех стран. |
| Найти максимальный ВВП |
| Найти минимальный ВВП на континенте Asia. |
| Найти общий ВВП в регионе Middle East, с площадью выше 50 000 |
| Найти средний ВВП для каждого региона. |
| Найти средний ВВП для каждой пары континент/регион |
| Вывести информацию вида: В стране N ВВП = х Где вместо N – название страны, вместо х – ВВП этой страны. |
2. Внимательно изучите данную таблицу R1.
| ID | Дата | Товар | Клиент | Количество | Цена | Менеджер |
| 2016-10-28 | Сыр | Авангард | Иванов | |||
| 2016-10-31 | Масло | Барс | Иванов | |||
| 2016-10-31 | Колбаса | Транс-сити | Петров | |||
| 2016-10-31 | Колбаса московская | Барс | Сидоров | |||
| 2016-10-31 | Колбаса докторская | Транс-сити | Лосев | |||
| 2016-10-29 | Сыр | Транс-сити | Лосев | |||
| 2016-10-30 | Масло | Барс | Лосев | |||
| 2016-10-28 | Колбаса | Барс | 500.5 | Петров | ||
| 2016-10-30 | Икра | Транс-сити | 505.8 | Петров | ||
| 2016-10-29 | Мука | Авангард | Иванов |
Укажите что получится в результате выполнения данных запросов:
| Запрос | Результат |
| SELECT MIN(количество) FROM R1 | |
| SELECT SUM(количество*цена) FROM R1 WHERE ДАТА = ' 2016-10-31 ' | |
| SELECT товар, MAX(цена) FROM R1 GROUP BY товар | |
| SELECT клиент, COUNT(*) FROM R1 WHERE менеджер IN (' Петров ', ' Лосев ') GROUP BY клиент |