- L3 MIASHS/Ingémath
- Université Paris Cité
- Année 2023-2024
- Course Homepage
- Moodle
Sur le serveur, dans votre schéma personnel, créer les fonctions SQL
et vues correspondant aux cinq questions suivantes.
Les pays où l’on cause le ….
Écrire une fonction SQL
nommée cc_fonc_1
qui prend en argument une chaine de caractères censée désigner une langue et renvoie une table (name_country TEXT, pop_speakers int4)
qui contient les 5 pays comportant le plus de locuteurs de la langue en question et pour chaque pays le nombre estimé de locuteurs de la langue en question
Réponse attendue pour %French%
:
name_country | pop_speakers |
---|---|
France | 55435254 |
Canada | 7288398 |
Belgium | 3337914 |
Tunisia | 2521118 |
United States | 1948499 |
TODO
Pays peu concentrés sur les grandes villes
Créer une vue cc_vue_2
des pays dont la population n’est pas nulle et où les cinq plus grandes villes ne rassemblent pas plus du dixième de la population. La vue aura pour schéma (countrycode, name_country, portion)
Réponse attendue pour
SELECT *
FROM username.cc_vue_2 cv
WHERE cv.countrycode IN (
SELECT c.countrycode
FROM world.country c
WHERE region='Eastern Africa'
) ;
countrycode | name_country | portion |
---|---|---|
MDG | Madagascar | 0.07045295 |
MWI | Malawi | 0.08367222 |
BDI | Burundi | 0.04480956 |
COM | Comoros | 0.062283736 |
TZA | Tanzania | 0.071704924 |
MYT | Mayotte | 0.08053691 |
UGA | Uganda | 0.040903665 |
RWA | Rwanda | 0.036984354 |
ETH | Ethiopia | 0.047906272 |
TODO
La cinquième ville la plus peuplée dans chaque pays
Écrire une fonction de cc_fonc_3
langage SQL
qui prend en argument une chaine de caractères censée désigner un pays par son nom et renvoie le nom de la cinquième ville la plus peuplée du pays (type de name_city
), et la part de la population du pays qui réside dans cette ville (type float4
).
Réponse attendue pour
SELECT name_city, prop
FROM username.cc_fonc_3('Italy') ;
name_city | prop |
---|---|
Palermo | 0.011854959 |
TODO
La population des deux villes les plus peuplées de chaque pays
Créer une vue cc_vue_4
qui liste par pays, le nombre d’habitants des deux villes les plus peuplées. La vue aura pour schéma (name_contry text, pop_two_cities int4)
.
Réponse attendue pour
SELECT *
FROM username.cc_vue_4
WHERE name_country = 'France' ;
name_country | pop_two_cities |
---|---|
France | 2923676 |
TODO
Pays où deux langues sont parlées par au moins un dixième de la population
Créer une vue cc_vue_5
des pays où au moins deux langues sont (chacunes) parlées par au moins un dixieme de la population. La vue aura même schema que world.country
.
SELECT
countrycode, name_country FROM
username.cc_vue_5 WHERE
='Eastern Europe' ; region
countrycode | name_country |
---|---|
CZE | Czech Republic |
BLR | Belarus |
MDA | Moldova |
UKR | Ukraine |
SVK | Slovakia |
SELECT
countrycode FROM
countrylanguageWHERE
>= 10
percentage GROUP BY countrycode
HAVING COUNT(language) >= 2;