Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
37
Добавлен:
26.04.2015
Размер:
492.03 Кб
Скачать

Величко Семён Владимирович

ФПКиФ II-2

Хусаинова Рена Фаридовна

Практическое задание №9.

Запросы к РБД с агрегирующими функциями и сортировкой.

  1. Для каждого разработчика (Developer) определить число разрабатываемых им программ;

  2. Посчитать количество языков программирования (таблица programming_languages) появившихся после 1995 года (поле appeared_in);

  3. Выбрать разработчиков (Developer) у которых более трех разрабатываемых им программ;

  4. Сгруппировать программы по разработчикам (Developer), сортировать по алфавиту внутри каждой группы относящейся к каждому разработчику;

  5. Для каждого разработчика определить среднюю цену его программ.

Исходные данные:

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;

Соседние файлы в папке Homeworks