-- Вывести все двухэтажные торговые точки select from tt where etaj --

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
-- Вывести все двухэтажные торговые точки
select * from tt where etaj = 2;
-- Вывести все торговые точки с ценой по убыванию
select * FROM tt ORDER BY cost desc
-- Вывести все торговые точки с кондиционером и у которых больше чем три Этажа
select * from tt where conditioner is TRUE and etaj > 3;
-- Вывести торговую площадь с самый дорогой торговой точкой
select * from torg_ploshad
LEFT JOIN tt on torg_ploshad.tt_id = tt.id
order by cost DESC
limit 1
-- Вывести среднюю цену торговых точек по каждой торговой площадке
select tt.id,avg(cost::NUMERIC) from torg_ploshad
LEFT JOIN tt on torg_ploshad.tt_id = tt.id
GROUP BY tt.id;
-- Вывести все торговые площади за последние 5 лет
select * from torg_ploshad
WHERE begin_datetime >= NOW() - '5 year'::INTERVAL;
-- Привести все торговые точки которые арендуется больше недели
select * from torg_ploshad WHERE end_datetime-begin_datetime > INTERVAL'1 week'
-- Вывести количество арендуемых торговых площадок на торговую точку и их среднюю цену
select tt.id,count(torg_ploshad.id),avg(cost::NUMERIC) from tt
LEFT JOIN torg_ploshad on torg_ploshad.tt_id = tt.id
GROUP BY tt.id
-- Вывести сколько было получено за аренду торговых торговых площади больше 20 квадратных метров
SELECT sum(cost::numeric) from tt
where ploshad > 20
-- Вывести рейтинг клиентов по количеству аренд
select client.name,count(arenda.id) from client
left JOIN arenda on client_id = client.id
GROUP BY client.name
ORDER BY count(arenda.id) DESC
-- Вывести количество аренд по каждому месяцу
select EXTRACT(MONTH FROM begin_datetime),count(*) from torg_ploshad
GROUP BY EXTRACT(MONTH FROM begin_datetime)
-- Вывести фактический чек по каждому месяцу
select EXTRACT(MONTH FROM date),sum(cost) from payment
GROUP BY EXTRACT(MONTH FROM date)
-- Вывести отчёт когда клиент арендовал площадь и какой метраж
select client.name,begin_datetime,ploshad from torg_ploshad
left join tt on torg_ploshad.tt_id = tt.id
left join arenda on torg_ploshad.arenda_id = arenda.id
LEFT JOIN client on client_id = client.id
-- Вывести у каждой торговой площадке самый популярный этаж
select tp.id,(
select etaj from torg_ploshad
left join tt on torg_ploshad.tt_id = tt.id
where torg_ploshad.id = tp.id
GROUP BY torg_ploshad.id,etaj
ORDER BY count(*) DESC
limit 1
) from torg_ploshad tp
-- Вывести у каждой торговой площадке самый непопулярный этаж
select tp.id,(
select etaj from torg_ploshad
left join tt on torg_ploshad.tt_id = tt.id
where torg_ploshad.id = tp.id
GROUP BY torg_ploshad.id,etaj
ORDER BY count(*) ASC
limit 1
) from torg_ploshad tp