161 lines
3.1 KiB
SQL
161 lines
3.1 KiB
SQL
--1 Obtenir la liste des 10 villes les plus peuplées en 2012
|
||
|
||
SELECT
|
||
ville_slug
|
||
FROM
|
||
villes
|
||
ORDER BY
|
||
ville_population_2012 DESC
|
||
LIMIT
|
||
10
|
||
;
|
||
|
||
|
||
--2 Obtenir la liste des 50 villes ayant la plus faible superficie
|
||
SELECT
|
||
ville_slug,
|
||
ville_surface
|
||
FROM
|
||
villes
|
||
ORDER BY
|
||
ville_surface ASC
|
||
LIMIT
|
||
50
|
||
;
|
||
|
||
|
||
--3 Obtenir la liste des départements d’outres-mer, c’est-à-dire ceux dont le numéro de département commencent par “97”
|
||
SELECT
|
||
departement_nom
|
||
FROM
|
||
departements
|
||
WHERE
|
||
departement_code
|
||
LIKE
|
||
'97%'
|
||
;
|
||
|
||
|
||
--4 Obtenir le nom des 10 villes les plus peuplées en 2012, ainsi que le nom du département associé
|
||
SELECT
|
||
ville_slug,
|
||
departement_nom
|
||
FROM
|
||
villes V
|
||
JOIN
|
||
departements D ON V.departement_id = D.departement_id
|
||
ORDER BY
|
||
ville_population_2012 DESC
|
||
LIMIT
|
||
10
|
||
;
|
||
|
||
|
||
--5 Obtenir la liste du nom de chaque département, associé à son code et du nombre de commune au sein de ces département, en triant afin d’obtenir en priorité les départements qui possèdent le plus de communes
|
||
SELECT
|
||
D.departement_id,
|
||
D.departement_nom,
|
||
D.departement_code,
|
||
COUNT(*) AS nombre_commune
|
||
FROM
|
||
villes V
|
||
JOIN
|
||
departements D ON V.departement_id = D.departement_id
|
||
GROUP BY
|
||
D.departement_id
|
||
ORDER BY
|
||
nombre_commune DESC
|
||
;
|
||
|
||
|
||
--6 Obtenir la liste des 10 plus grands départements, en terme de superficie
|
||
SELECT
|
||
D.departement_id,
|
||
D.departement_nom,
|
||
SUM(ville_surface) AS supperficie
|
||
FROM
|
||
villes V
|
||
JOIN
|
||
departements D ON V.departement_id = D.departement_id
|
||
GROUP BY
|
||
D.departement_id
|
||
ORDER BY
|
||
supperficie DESC
|
||
LIMIT 10;
|
||
|
||
|
||
--7 Compter le nombre de villes dont le nom commence par “Saint”
|
||
SELECT
|
||
COUNT(*) AS nombre_villes_debut_par_saint
|
||
FROM
|
||
villes V
|
||
WHERE
|
||
V.ville_nom_reel
|
||
LIKE
|
||
'Saint%'
|
||
;
|
||
|
||
|
||
--8 Obtenir la liste des villes qui ont un nom existants plusieurs fois, et trier afin d’obtenir en premier celles dont le nom est le plus souvent utilisé par plusieurs communes
|
||
SELECT
|
||
V.ville_nom,
|
||
COUNT(*) AS occurence
|
||
FROM
|
||
villes V
|
||
GROUP BY
|
||
V.ville_nom
|
||
HAVING
|
||
COUNT(*) > 1
|
||
ORDER BY
|
||
occurence DESC
|
||
;
|
||
|
||
|
||
|
||
--9 Obtenir en une seule requête SQL la liste des villes dont la superficie est supérieur à la superficie moyenne (17.25737493077501)
|
||
SELECT
|
||
V.ville_id,
|
||
V.ville_nom,
|
||
V.ville_surface
|
||
FROM
|
||
villes V
|
||
WHERE
|
||
V.ville_surface > (
|
||
SELECT
|
||
AVG(ville_surface)
|
||
FROM
|
||
villes
|
||
)
|
||
ORDER BY
|
||
V.ville_nom ASC
|
||
;
|
||
|
||
|
||
--10 Obtenir la liste des départements qui possèdent plus de 2 millions d’habitants
|
||
SELECT
|
||
D.departement_nom,
|
||
SUM(ville_population_2012) AS la_population
|
||
FROM
|
||
departements D
|
||
JOIN
|
||
villes V ON V.departement_id = D.departement_id
|
||
GROUP BY
|
||
D.departement_nom
|
||
HAVING
|
||
SUM(ville_population_2012) > 2000000
|
||
;
|
||
|
||
|
||
--11 Remplacez les tirets par un espace vide, pour toutes les villes commençant par “SAINT-” (dans la colonne qui contient les noms en majuscule)
|
||
SELECT
|
||
V.departement_id,
|
||
REPLACE(V.ville_nom, '-', ' ')
|
||
FROM
|
||
villes V
|
||
WHERE
|
||
V.ville_nom
|
||
LIKE
|
||
'SAINT-%'
|
||
ORDER BY
|
||
V.ville_nom ASC
|
||
; |