181 lines
3.2 KiB
MySQL
181 lines
3.2 KiB
MySQL
|
--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
|
|||
|
;
|
|||
|
|
|||
|
|
|||
|
--template
|
|||
|
SELECT
|
|||
|
FROM
|
|||
|
INNER JOIN
|
|||
|
ON
|
|||
|
WHERE
|
|||
|
GROUP BY
|
|||
|
ORDER BY
|
|||
|
LIMIT
|