Базы данных / Подмога_БД_Величко / Homeworks / Homework_9
.docxВеличко Семён Владимирович
ФПКиФ II-2
Хусаинова Рена Фаридовна
Практическое задание №9.
Запросы к РБД с агрегирующими функциями и сортировкой.
-
Для каждого разработчика (Developer) определить число разрабатываемых им программ;
-
Посчитать количество языков программирования (таблица programming_languages) появившихся после 1995 года (поле appeared_in);
-
Выбрать разработчиков (Developer) у которых более трех разрабатываемых им программ;
-
Сгруппировать программы по разработчикам (Developer), сортировать по алфавиту внутри каждой группы относящейся к каждому разработчику;
-
Для каждого разработчика определить среднюю цену его программ.
Исходные данные:
1. Для каждого разработчика (Developer) определить число разрабатываемых им программ:
SELECT D.ID, D.Developer, COUNT(*) AS QTY
FROM developers AS D INNER JOIN programs AS P ON D.ID = P.Number_of_developer
GROUP BY D.ID, D.Developer;
2. Посчитать количество языков программирования (таблица programming_languages) появившихся после 1995 года (поле appeared_in):
SELECT COUNT(*) AS After_1995
FROM programming_languages
WHERE Appeared_in >= 1995;
3. Выбрать разработчиков (Developer) у которых более трех разрабатываемых им программ:
SELECT D.ID, D.Developer, D.Headquarters_location
FROM developers AS D INNER JOIN programs AS P ON D.ID = P.Number_of_developer
GROUP BY D.ID, D.Developer, D.Headquarters_location
HAVING COUNT(P.ID) > 3;
4. Сгруппировать программы по разработчикам (Developer), сортировать по алфавиту внутри каждой группы относящейся к каждому разработчику:
SELECT P.Product_name, D.Developer
FROM programs AS P INNER JOIN developers AS D ON P.Number_of_developer = D.ID
GROUP BY D.Developer, P.Product_name
ORDER BY D.Developer, P.Product_name;
5. Для каждого разработчика определить среднюю цену его программ:
SELECT D.ID, D.Developer, AVG(P.Price) AS Average_price
FROM developers AS D INNER JOIN programs AS P ON D.ID = P.Number_of_developer
GROUP BY D.ID, D.Developer;