-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathP3_script Requêtes.txt
117 lines (100 loc) · 3.47 KB
/
P3_script Requêtes.txt
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
1. Nombre total d’appartements vendus au 1er semestre 2020.
SELECT count(DISTINCT id_vente) AS nb_appart_S1_2020 FROM vente
JOIN bien USING(id_bien)
WHERE date_signature BETWEEN '2020-01-01' AND '2020-06-30' AND type_local='Appartement';
R2:
SELECT nom_region, COUNT(DISTINCT id_vente) AS nb_appart_S1_2020 FROM vente
JOIN bien USING(id_bien)
JOIN commune USING(id_commune)
JOIN departement USING(code_departement)
WHERE date_signature BETWEEN '2020-01-01' AND '2020-06-30' AND type_local='Appartement'
GROUP BY nom_region;
R3:
SELECT total_piece AS nb_pieces,
count(*) AS nb_ventes,
ROUND(count(*)*100/(SELECT count(DISTINCT id_vente) FROM vente JOIN bien USING (id_bien) WHERE type_local = 'Appartement'),2)
AS proportion FROM vente
JOIN bien USING(id_bien)
WHERE type_local='Appartement'
GROUP BY nb_pieces
ORDER BY nb_pieces ASC;
R4:
SELECT code_departement, ROUND(AVG(montant/surface_carrez),2) AS prix_m2
FROM bien
JOIN vente USING (id_bien)
JOIN commune USING(id_commune)
WHERE surface_carrez > 0
GROUP BY code_departement
ORDER BY prix_m2 DESC
LIMIT 10;
R5:
SELECT nom_region, ROUND(AVG(montant/surface_carrez),2) AS prix_m2
FROM bien
JOIN vente USING (id_bien)
JOIN commune USING(id_commune)
JOIN departement USING (code_departement)
WHERE type_local='Maison' AND nom_region='Île-de-France' AND surface_carrez > 0;
R6:
SELECT id_bien, montant, nom_region, surface_carrez FROM bien
JOIN vente USING (id_bien)
JOIN commune USING (id_commune)
JOIN departement USING (code_departement)
WHERE type_local = 'Appartement'
ORDER BY montant DESC
LIMIT 10;
R7:
WITH venteT1 AS (
SELECT COUNT(DISTINCT id_vente) AS nbventeT1 FROM vente
JOIN bien USING (id_bien)
WHERE date_signature BETWEEN '2020-01-01' AND '2020-03-31' AND type_local='Appartement'
),
venteT2 AS (
SELECT COUNT(DISTINCT id_vente) AS nbventeT2 FROM vente
JOIN bien USING (id_bien)
WHERE date_signature BETWEEN '2020-04-01' AND '2020-06-30' AND type_local='Appartement'
)
SELECT ROUND((nbventeT2-nbventeT1)*100/nbventeT1,2) AS evolution FROM venteT1, venteT2;
R8:
SELECT ROUND(AVG(montant/surface_carrez),2) AS prix_m2, nom_region
FROM bien
JOIN vente USING (id_bien)
JOIN commune USING(id_commune)
JOIN departement USING(code_departement)
WHERE type_local='Appartement' AND total_piece>4 AND surface_carrez>0
GROUP BY nom_region
ORDER BY prix_m2 DESC;
R9:
SELECT nom_commune, COUNT(DISTINCT id_vente)AS nb_vente_T1 FROM vente
JOIN bien USING(id_bien)
JOIN commune USING(id_commune)
WHERE date_signature BETWEEN '2020-01-01' AND '2020-03-31'
GROUP BY nom_commune
HAVING count(DISTINCT id_vente)>=50;
R10:
WITH table1 AS(
SELECT AVG(montant/surface_carrez) AS T2_prix_m2
FROM bien
JOIN vente USING (id_bien)
WHERE type_local='Appartement' AND total_piece=2 AND surface_carrez>0
),
table2 AS (
SELECT AVG(montant/surface_carrez) AS T3_prix_m2
FROM bien
JOIN vente USING (id_bien)
WHERE type_local='Appartement' AND total_piece=3 AND surface_carrez>0
)
SELECT ROUND((T3_prix_m2-T2_prix_m2)*100/T2_prix_m2,2) as difference FROM table1, table2;
WITH table1 AS(
SELECT
code_departement,
id_commune,
nom_commune,
ROUND(AVG(montant),2) AS moyenne_val_fonciere ,
rank() OVER (PARTITION BY code_departement ORDER BY AVG(montant) DESC) classement
FROM vente
JOIN bien USING (id_bien)
JOIN commune USING (id_commune)
WHERE code_departement IN ('06','13','33','59','69')
GROUP BY id_commune)
SELECT * FROM table1
WHERE table1.classement <=3;