first commit
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
use OrdersDB_2;
|
||||
|
||||
##################### Завдання #######################
|
||||
##########################################################
|
||||
################### Завдання 1.1 #####################
|
||||
Знайдіть максимальну і мінімальну середню суму угоди на основі середньої суми угод кожного продавця.
|
||||
Підказка: використайте підзапит у пропозиції FROM.
|
||||
|
||||
select max(avg_amt), min(avg_amt)
|
||||
from (
|
||||
select avg(amt) as avg_amt
|
||||
from Orders
|
||||
group by
|
||||
SNUM
|
||||
) as avg_amt;
|
||||
|
||||
######################################################
|
||||
################# Завдання 1.2 ###################
|
||||
|
||||
Напишіть запит, що виведе кожне замовлення покупців, якщо їх вартість більша за кожне замовлення
|
||||
покупця Grass. Вивід здійснити у формі onum, amt, odate, cname.
|
||||
Підказка: використайте оператор ALL
|
||||
|
||||
select onum, amt, odate, cname
|
||||
from Orders o
|
||||
join Customers c on o.cnum = c.cnum
|
||||
where
|
||||
amt > all (
|
||||
select amt
|
||||
from Orders
|
||||
where
|
||||
cnum = (
|
||||
select cnum
|
||||
from Customers
|
||||
where
|
||||
cname = 'Grass'
|
||||
)
|
||||
);
|
||||
|
||||
######################################################
|
||||
################# Завдання 1.3 ###################
|
||||
Виведіть усі замовлення для яких сума угоди перевершує хоча б якесь замолення,
|
||||
що обслуговувалося продавцем Peel
|
||||
Вивід здійсніть у формі amt, odate, cname, sname
|
||||
|
||||
select amt, odate, cname, sname
|
||||
from
|
||||
Orders o
|
||||
join Customers c on o.cnum = c.cnum
|
||||
join Salespeople s on o.snum = s.snum
|
||||
where
|
||||
amt > any (
|
||||
select amt
|
||||
from Orders
|
||||
where
|
||||
snum = (
|
||||
select snum
|
||||
from Salespeople
|
||||
where
|
||||
sname = 'Peel'
|
||||
)
|
||||
);
|
||||
|
||||
#####################################################
|
||||
################ Завдання 1.4 ###################
|
||||
Виведіть продавців серердня сума угод яких перевищує середню суму усіх угод.
|
||||
У вивід включіть ім’я продавця та його середню суму угод
|
||||
Підказка:
|
||||
|
||||
select sname, avg_amt
|
||||
from Salespeople s
|
||||
join (
|
||||
select snum, avg(amt) as avg_amt
|
||||
from Orders
|
||||
group by
|
||||
snum
|
||||
) as avg_amt on s.snum = avg_amt.snum
|
||||
where
|
||||
avg_amt > (
|
||||
select avg(amt)
|
||||
from Orders
|
||||
);
|
||||
|
||||
#####################################################
|
||||
################ Завдання 1.5 ###################
|
||||
Виведіть покупців, серердня сума угод яких перевищує середню суму усіх угод.
|
||||
У вивід включіть ім’я покупця та його середню суму угод а також загальну середню суму угод.
|
||||
Підказка:
|
||||
|
||||
select cname, avg_amt, round(
|
||||
(
|
||||
select avg(amt)
|
||||
from Orders
|
||||
), 2
|
||||
) as avg_amt_all
|
||||
from Customers c
|
||||
join (
|
||||
select cnum, avg(amt) as avg_amt
|
||||
from Orders
|
||||
group by
|
||||
cnum
|
||||
) as avg_cus on c.cnum = avg_cus.cnum
|
||||
where
|
||||
avg_amt > (
|
||||
select avg(amt)
|
||||
from Orders
|
||||
);
|
||||
Reference in New Issue
Block a user