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

Z08  | MVideo      | Sony    |      8 | 18000 | 2011-10-01

Z02  | Eldorado    | Zenit   |     12 | 10000 | 2011-11-24

Z12  | Eldorado    | Gefest  |      3 |  6000 | 2011-12-31

Z09  | Sibvez      | Tefal   |     10 | 20000 | 2012-05-05

Z01  | MVideo      | Samsung |     32 | 20000 | 2012-12-24

Z03  | Tehnosity   | Tefal   |     45 | 40000 | 2013-01-04

Z06  | Mediamarket | Samsung |      6 |  4500 | 2013-03-08

Z10  | Sibvez      | Sony    |      1 |  2000 | 2013-05-05

Z05  | Sibvez      | Gefest  |      5 |  6000 | 2013-07-18

Z04  | e2e4        | Sony    |      2 |  4000 | 2013-08-04

Z07  | e2e4        | Zenit   |      7 | 14000 | 2013-10-01

(12 rows)

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

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

name | price

------+------Z03  | 40000

(1 row)           

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

name | price

------+------Z10  |  2000

(1 row)

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

type_    |      price

------------+-----------------holodilnik | 23333.3333333333

mixer      | 4833.33333333333

kofevarka  | 17333.3333333333

utug       | 4333.33333333333

(4 rows)

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

price

-----------------12458.3333333333

(1 row)                                                                 

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

select * from task4(5000, 10000) as(name varchar, price float, type_ varchar);

 name | price | type_

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

 Z05  |  6000 | mixer

 Z12  |  6000 | utug

(2 rows)

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

select * from task5(4) as (name varchar);

 name

------

 Z02

 Z07

(2 rows)

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

select * from task6('2012-12-24') as (name varchar);

 name

------

 Z01

(1 row)

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

select * from task7(4, 1, 40) as (name varchar, weight int,

 title varchar);

 name | weight | title

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

 Z02  |     12 | Zenit

 Z07  |      7 | Zenit

(2 rows)

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

select * from task8('2013-01-01', '2013-01-10') as (proport

ion float);

    proportion

------------------

 33.3333333333333

(1 row)

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

select * from task9() as (name varchar,n_sale int);

name | n_sale

------+-------Z03  |     50

(1 row)

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

select * from task10(2, 10000) as (proportion float);

    proportion

------------------

 8.33333333333333

(1 row)

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

select * from task11(2, 2) as (name varchar, defects int, name_sup varchar, country varchar);

 name | defects | name_sup | country

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

 Z12  |       1 | Eldorado | Japan

 Z12  |       2 | Eldorado | Japan

 Z12  |       5 | Eldorado | Japan

 Z12  |       3 | Eldorado | Japan

 Z12  |      10 | Eldorado | Japan

 Z12  |       0 | Eldorado | Japan

 Z12  |       1 | Eldorado | Japan

 Z12  |       2 | Eldorado | Japan

 Z12  |       4 | Eldorado | Japan

 Z12  |      25 | Eldorado | Japan

 Z12  |       8 | Eldorado | Japan

 Z12  |       1 | Eldorado | Japan

(12 rows)

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

select * from task12('2012-01-10', '2013-01-20') as (price float);

      price

------------------

 26666.6666666667

(1 row)

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

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

 name | price

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

 Z01  | 20000

 Z02  | 10000

 Z03  | 40000

 Z07  | 14000

 Z08  | 18000

 Z09  | 20000

(6 rows)

Анализ результатов и выводы