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)
Анализ результатов и выводы