TP Requêtes SQL Spring
TP Requêtes SQL Spring
### 5. Liste de pays dont la population est supérieure à la moyenne par continent
```sql
SELECT
country.Name AS Country,
country.Continent,
country.Population
FROM country
JOIN (
SELECT Continent, AVG(Population) AS AvgPopulation
FROM country
GROUP BY Continent
) avg_continent ON country.Continent = avg_continent.Continent
WHERE country.Population > avg_continent.AvgPopulation;
```
### 6. Nombre de pays dont la population est supérieure à la moyenne par continent
```sql
SELECT
country.Continent,
COUNT(country.Code) AS NumberOfCountries
FROM country
JOIN (
SELECT Continent, AVG(Population) AS AvgPopulation
FROM country
GROUP BY Continent
) avg_continent ON country.Continent = avg_continent.Continent
WHERE country.Population > avg_continent.AvgPopulation
GROUP BY country.Continent;
```
### 13. Nombre de pays par continent qui parlent Français et Anglais
```sql
SELECT
country.Continent,
COUNT(DISTINCT country.Code) AS NumberOfCountries
FROM countrylanguage cl1
JOIN countrylanguage cl2 ON cl1.CountryCode = cl2.CountryCode
JOIN country ON cl1.CountryCode = country.Code
WHERE cl1.Language = 'French' AND cl2.Language = 'English'
GROUP BY country.Continent;
```
### 14. Nombre de pays par continent qui parlent Français ou Anglais
```sql
SELECT
country.Continent,
COUNT(DISTINCT country.Code) AS NumberOfCountries
FROM countrylanguage
JOIN country ON countrylanguage.CountryCode = country.Code
WHERE countrylanguage.Language IN ('French', 'English')
GROUP BY country.Continent;
```
### 15. Statistiques du nombre de langues par continent et pays
```sql
SELECT
country.Continent,
country.Name AS Country,
COUNT(countrylanguage.Language) AS NumberOfLanguages
FROM countrylanguage
JOIN country ON countrylanguage.CountryCode = country.Code
GROUP BY country.Continent, country.Name;
```
### 16. Liste de pays dont le code pays commence par la lettre « Z »
```sql
SELECT
Name AS Country
FROM country
WHERE Code LIKE 'Z%';
```
### 17. Liste de pays dont le code pays finit par la lettre « E »
```sql
SELECT
Name AS Country
FROM country
WHERE Code LIKE '%E';
```
### 21. Statistiques par continent de pays et leurs populations dont l’espérance de
vie est entre 35 et 50 ans
```sql
SELECT
country.Continent,
COUNT(country.Code) AS NumberOfCountries,
SUM(country.Population) AS TotalPopulation
FROM country
WHERE LifeExpectancy BETWEEN 35 AND 50
GROUP BY country.Continent;
```
### 24. Nombre de pays par intervalle d’année d’indépendance par continent
```sql
SELECT
country.Continent,
SUM(CASE WHEN IndepYear < 1950 THEN 1 ELSE 0 END) AS Before1950,
SUM(CASE WHEN IndepYear BETWEEN 1951 AND 1960 THEN 1 ELSE 0 END) AS
Between1951And1960,
SUM(CASE WHEN IndepYear > 1960 THEN 1 ELSE 0 END) AS After1960,
SUM(CASE WHEN IndepYear IS NULL THEN 1 ELSE 0 END) AS NotIndicated
FROM country
GROUP BY country.Continent;
```
### 27. Liste de pays dont l’espérance de vie est inférieure à la moyenne par
continent
```sql
SELECT
country.Name AS Country,
country.Continent,
country.LifeExpectancy
FROM country
JOIN (
SELECT Continent, AVG(LifeExpectancy) AS AvgLifeExpectancy
FROM country
GROUP BY Continent
) avg_continent ON country.Continent = avg_continent.Continent
WHERE country.LifeExpectancy < avg_continent.AvgLifeExpectancy;
```
### 34. Liste de pays qui ont été derniers à avoir leurs indépendances
```sql
SELECT
Name AS Country,
IndepYear
FROM country
WHERE IndepYear = (SELECT MAX(IndepYear) FROM country);
```
### 35. Liste de pays qui ont été premiers à avoir leurs indépendances
```sql
SELECT
Name AS Country,
IndepYear
FROM country
WHERE IndepYear = (SELECT MIN(IndepYear) FROM country WHERE IndepYear IS NOT NULL);
```
### 36. Nombre de pays qui ont été derniers à avoir leurs indépendances
```sql
SELECT
COUNT(*) AS NumberOfCountries
FROM country
WHERE IndepYear = (SELECT MAX(IndepYear) FROM country);
```
### 37. Nombre de pays qui ont été premiers à avoir leurs indépendances
```sql
SELECT
COUNT(*) AS NumberOfCountries
FROM country
WHERE IndepYear = (SELECT MIN(IndepYear) FROM country WHERE IndepYear IS NOT NULL);
```
### 41. Liste de pays où aucune information sur les langues parlées n’a été fournie
```sql
SELECT
country.Name AS Country
FROM country
LEFT JOIN countrylanguage ON country.Code = countrylanguage.CountryCode
WHERE countrylanguage.Language IS NULL;
```
### 44. Liste de pays dont la forme de gouvernement est la monarchie « Monarchy »
ou la république fédérale « Federal Republic »
```sql
SELECT
Name AS Country
FROM country
WHERE GovernmentForm IN ('Monarchy', 'Federal Republic');
```
### 45. Nombre de pays dont la forme de gouvernement est la monarchie « Monarchy »
ou la république fédérale « Federal Republic »
```sql
SELECT
COUNT(*) AS NumberOfCountries
FROM country
WHERE GovernmentForm IN ('Monarchy', 'Federal Republic');
```