Лабораторная работа № 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 клиент |