Создание базы данных «Электроприборы», страница 4

select * from task2b(…) as (name varchar, name_sup varchar, title varchar, weight int, price float);

select * from task2c(…) as (name varchar, name_sup varchar, title varchar, weight int, price float);

Возвращает: название, поставщик, производитель, вес, цена (отсортированный список)

3. Найти самый дорогой вид электроприборов, самый дешевый, среднюю стоимость по каждому виду и в целом.

Функции: task3a(),task3b (),task3c (),task3d ()

Входных параметров нет.

Вызов:                

select * from task3a () as(name varchar, price float);       

select * from task3b () as(name varchar, price float);

select * from task3c () as(type_ varchar, price float);

select * from task3d () as(price float);               

Возвращает:

task3a (),task3b (): название, цена

task3c (): вид, цена

task3d (): цена

4. Найти электроприборы с ценой в заданных пределах (предусмотреть ввод цены с клавиатуры).

Функция: task4 (int, int)

Входной параметр: минимальная цена (int), максимальная цена (int)

Вызов: select * from task4 (…) as(name varchar, price float, type_ varchar);

Возвращает: название, цена, вид.

5. Найти все электроприборы заданного производителя (выбор).

Функция: task5 (int)

Входной параметр: id производителя (int)

Вызов: select * from task5 (…) as(name varchar);

Возвращает: название.

6. Найти все приборы с заданной датой выпуска (ввод даты).

Функция: task6 (date)

Входной параметр: дата выпуска прибора (date)

Вызов: select * from task6 (…) as(name varchar);

Возвращает: название.

7. Найти все электроприборы, чей вес находится в заданных пределах (ввод интервала) для заданного производителя (выбор).

Функция: task7 (int, float, float)

Входной параметр: id производителя (int), минимальный вес (float), макс. вес (float)

Вызов: select * from task7 (…) as(name varchar, weight float, title varchar);

Возвращает: название.

8. Найти долю электроприборов, проданных за определенный период (ввод периода) от общего времени продажи.

Функция: task8 (int, date, date)

Входной параметр: id электроприбора, первая дата периода (date), вторая дата периода (date)

Вызов: select * from task8 (…) as(proportion float);

Возвращает: значение float – доля.

9. Найти самый популярный вид электроприбора (продано наибольшее количество).

Функция: task9 (int)

Входной параметр: id электроприбора

Вызов: select * from task9 (…) as(name varchar, n_sale int);

Возвращает: название, сколько продано.

10. Найти долю дешевых электроприборов (чья стоимость меньше заданой, ввод стоимости), поступивших от заданного поставщика.

Функция: task11 (int, float)

Входной параметр: производитель (int), минимальная цена (float)

Вызов: select * from task11 (…) as(proportion float);

Возвращает: значение float – доля.

11. Найти количество бракованных электроприборов, поступивших из заданной страны (ввод страны, выбор) для заданного поставщика (ввод поставщика, выбор).

Функция: task11 (int, int)

Входной параметр: id издательства (int), id поставщика (int)

Вызов: select * from task11 (…) as(name varchar, defects int, name_sup varchar, country varchar);

Возвращает: название, количество брака, поставщика, страну производителя.

12. Найти среднюю стоимость электроприборов, проданных за определенный промежуток времени (ввод интервала).

Функция: task12 (date, date)

Входной параметр:  минимальная дата (date), максимальная дата (date)

Вызов: select * from task12 (…) as(price float);

Возвращает: значение float – средняя цена.

13. Найти все электроприборы, чья стоимость выше, чем средняя стоимость электроприборов заданного производителя.

Функция: task13 (int)

Входной параметр:  id производителя (int)

Вызов: select * from task13(…) as (name varchar, price float);

Возвращает: название, цена.

Тексты запросов и примеры работы

1. Для каждого вида электроприборов (холодильник, пылесос, стиральная машина, кофеварка, утюг и т.д.) указать сведения о нем (наименование, дату выпуска, поставщик, цена, вес и т.п.).

select * from task1('mixer') as (name varchar, type_ varcha

r, name_sup varchar, title varchar, weight int, price int);

 name | type_ |  name_sup   |  title  | weight | price

------+-------+-------------+---------+--------+-------

 Z01  | mixer | MVideo      | Samsung |     32 | 20000

 Z08  | mixer | MVideo      | Sony    |      8 | 18000