0% found this document useful (0 votes)
12 views

TP Requêtes SQL Spring

Uploaded by

Chris Koyo
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

TP Requêtes SQL Spring

Uploaded by

Chris Koyo
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 10

Voici les requêtes SQL pour répondre à vos questions :

### 1. Nombre de cités et total de la population par pays


```sql
SELECT
country.Name AS Country,
COUNT(city.ID) AS NumberOfCities,
SUM(city.Population) AS TotalPopulation
FROM city
JOIN country ON city.CountryCode = country.Code
GROUP BY country.Name;
```

### 2. Nombre de pays, cités et total de la population par continent


```sql
SELECT
country.Continent,
COUNT(DISTINCT country.Code) AS NumberOfCountries,
COUNT(city.ID) AS NumberOfCities,
SUM(city.Population) AS TotalPopulation
FROM country
JOIN city ON country.Code = city.CountryCode
GROUP BY country.Continent;
```

### 3. Comparaison du total de la population dans les tables `City` et `Country`


par pays
```sql
SELECT
country.Name AS Country,
country.Population AS PopulationInCountryTable,
SUM(city.Population) AS PopulationInCityTable
FROM country
JOIN city ON country.Code = city.CountryCode
GROUP BY country.Name, country.Population;
```

### 4. Nombre de cités par tranche de population


```sql
SELECT
CASE
WHEN Population BETWEEN 0 AND 100000 THEN '0 – 100,000'
WHEN Population BETWEEN 100001 AND 250000 THEN '100,001 – 250,000'
WHEN Population BETWEEN 250001 AND 500000 THEN '250,001 – 500,000'
ELSE '> 500,000'
END AS PopulationRange,
COUNT(*) AS NumberOfCities
FROM city
GROUP BY PopulationRange;
```

### 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;
```

### 7. TOP 50 districts en termes de nombre de la population


```sql
SELECT
city.District,
city.Name AS City,
country.Name AS Country,
(
SELECT Language
FROM countrylanguage
WHERE countrylanguage.CountryCode = country.Code
ORDER BY Percentage DESC
LIMIT 1
) AS MostSpokenLanguage,
city.Population
FROM city
JOIN country ON city.CountryCode = country.Code
ORDER BY city.Population DESC
LIMIT 50;
```

### 8. Liste de langues les plus parlées par pays


```sql
SELECT
country.Name AS Country,
countrylanguage.Language,
MAX(countrylanguage.Percentage) AS Percentage
FROM countrylanguage
JOIN country ON countrylanguage.CountryCode = country.Code
GROUP BY country.Name, countrylanguage.Language;
```

### 9. Nombre de langues par pays


```sql
SELECT
country.Name AS Country,
COUNT(countrylanguage.Language) AS NumberOfLanguages
FROM countrylanguage
JOIN country ON countrylanguage.CountryCode = country.Code
GROUP BY country.Name;
```

### 10. Nombre de langues par continent


```sql
SELECT
country.Continent,
COUNT(DISTINCT countrylanguage.Language) AS NumberOfLanguages
FROM countrylanguage
JOIN country ON countrylanguage.CountryCode = country.Code
GROUP BY country.Continent;
```

### 11. Liste de pays qui parlent plus de 3 langues


```sql
SELECT
country.Name AS Country,
COUNT(countrylanguage.Language) AS NumberOfLanguages
FROM countrylanguage
JOIN country ON countrylanguage.CountryCode = country.Code
GROUP BY country.Name
HAVING COUNT(countrylanguage.Language) > 3;
```

### 12. Nombre de pays par continent qui parlent Français


```sql
SELECT
country.Continent,
COUNT(DISTINCT country.Code) AS NumberOfCountries
FROM countrylanguage
JOIN country ON countrylanguage.CountryCode = country.Code
WHERE countrylanguage.Language = 'French'
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';
```

### 18. Liste de pays dont le code pays inclut la lettre « A »


```sql
SELECT
Name AS Country
FROM country
WHERE Code LIKE '%A%';
```

### 19. Liste de pays où l’espérance de vie n’est pas indiquée


```sql
SELECT
Name AS Country
FROM country
WHERE LifeExpectancy IS NULL;
```

### 20. Liste de pays où l’année de l’indépendance n’est pas indiquée


```sql
SELECT
Name AS Country
FROM country
WHERE IndepYear IS NULL;
```

### 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;
```

### 22. Nombre de pays par tranche d’espérance de vie


```sql
SELECT
CASE
WHEN LifeExpectancy BETWEEN 0 AND 25 THEN '0 – 25 ans'
WHEN LifeExpectancy BETWEEN 26 AND 50 THEN '26 – 50 ans'
WHEN LifeExpectancy BETWEEN 51 AND 75 THEN '51 – 75 ans'
WHEN LifeExpectancy > 75 THEN '> 75 ans'
ELSE 'Non Indiqué'
END AS LifeExpectancyRange,
COUNT(*) AS NumberOfCountries
FROM country
GROUP BY LifeExpectancyRange;
```

### 23. Nombre de pays par intervalle d’année d’indépendance


```sql
SELECT
CASE
WHEN IndepYear < 1950 THEN '< 1950'
WHEN IndepYear BETWEEN 1951 AND 1960 THEN '1951 – 1960'
WHEN IndepYear > 1960 THEN '> 1960'
ELSE 'Non Indiqué'
END AS IndepYearRange,
COUNT(*) AS NumberOfCountries
FROM country
GROUP BY IndepYearRange;
```

### 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;
```

### 25. Liste de pays où le Français est plus parlé


```sql
SELECT
country.Name AS Country
FROM countrylanguage
JOIN country ON countrylanguage.CountryCode = country.Code
WHERE countrylanguage.Language = 'French'
ORDER BY countrylanguage.Percentage DESC;
```

### 26. Liste de pays où le Français n’est pas parlé


```sql
SELECT
country.Name AS Country
FROM country
WHERE NOT EXISTS (
SELECT 1
FROM countrylanguage
WHERE countrylanguage.CountryCode = country.Code AND countrylanguage.Language =
'French'
);
```

### 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;
```

### 28. Pays dont l’espérance de vie est la plus élevée


```sql
SELECT
Name AS Country,
LifeExpectancy
FROM country
ORDER BY LifeExpectancy DESC
LIMIT 1;
```

### 29. Pays dont l’espérance de vie est la moins élevée


```sql
SELECT
Name AS Country,
LifeExpectancy
FROM country
ORDER BY LifeExpectancy ASC
LIMIT 1;
```

### 30. Continent dont l’espérance de vie est la plus élevée


```sql
SELECT
Continent,
AVG(LifeExpectancy) AS AvgLifeExpectancy
FROM country
GROUP BY Continent
ORDER BY AvgLifeExpectancy DESC
LIMIT 1;
```
### 31. Continent dont l’espérance de vie est la moins élevée
```sql
SELECT
Continent,
AVG(LifeExpectancy) AS AvgLifeExpectancy
FROM country
GROUP BY Continent
ORDER BY AvgLifeExpectancy ASC
LIMIT 1;
```

### 32. Année où il y a eu le plus d’indépendances


```sql
SELECT
IndepYear,
COUNT(*) AS NumberOfIndependences
FROM country
WHERE IndepYear IS NOT NULL
GROUP BY IndepYear
ORDER BY NumberOfIndependences DESC
LIMIT 1;
```

### 33. Année où il y a eu le moins d’indépendances


```sql
SELECT
IndepYear,
COUNT(*) AS NumberOfIndependences
FROM country
WHERE IndepYear IS NOT NULL
GROUP BY IndepYear
ORDER BY NumberOfIndependences ASC
LIMIT 1;
```

### 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);
```

### 38. Langue la plus parlée dans le monde


```sql
SELECT
Language,
SUM(country.Population * (Percentage / 100)) AS TotalSpeakers
FROM countrylanguage
JOIN country ON countrylanguage.CountryCode = country.Code
GROUP BY Language
ORDER BY TotalSpeakers DESC
LIMIT 1;
```

### 39. Langue la moins parlée dans le monde


```sql
SELECT
Language,
SUM(country.Population * (Percentage / 100)) AS TotalSpeakers
FROM countrylanguage
JOIN country ON countrylanguage.CountryCode = country.Code
GROUP BY Language
ORDER BY TotalSpeakers ASC
LIMIT 1;
```

### 40. Nombre de pays par tranche de nombre de langues parlées


```sql
SELECT
CASE
WHEN LanguageCount BETWEEN 1 AND 2 THEN '1 – 2'
WHEN LanguageCount BETWEEN 3 AND 3 THEN '3 – 3'
WHEN LanguageCount > 3 THEN '> 3'
ELSE 'Non Indiqué'
END AS LanguageRange,
COUNT(*) AS NumberOfCountries
FROM (
SELECT
country.Code,
COUNT(countrylanguage.Language) AS LanguageCount
FROM country
LEFT JOIN countrylanguage ON country.Code = countrylanguage.CountryCode
GROUP BY country.Code
) AS subquery
GROUP BY LanguageRange;
```

### 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;
```

### 42. Liste de langues dupliquées


```sql
SELECT
Language
FROM countrylanguage
GROUP BY Language, CountryCode
HAVING COUNT(*) > 1;
```

### 43. Nombre de langues dupliquées


```sql
SELECT
COUNT(DISTINCT Language) AS NumberOfDuplicatedLanguages
FROM countrylanguage
GROUP BY Language, CountryCode
HAVING COUNT(*) > 1;
```

### 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');
```

### 46. Total de la population dont la forme de gouvernement est la monarchie «


Monarchy » ou la république fédérale « Federal Republic »
```sql
SELECT
SUM(Population) AS TotalPopulation
FROM country
WHERE GovernmentForm IN ('Monarchy', 'Federal Republic');
```

### 47. Total de la population par forme de gouvernement


```sql
SELECT
GovernmentForm,
SUM(Population) AS TotalPopulation
FROM country
GROUP BY GovernmentForm;
```
### 48. Forme de gouvernement la plus appliquée
```sql
SELECT
GovernmentForm,
COUNT(*) AS NumberOfCountries
FROM country
GROUP BY GovernmentForm
ORDER BY NumberOfCountries DESC
LIMIT 1;
```

### 49. Forme de gouvernement la moins appliquée


```sql
SELECT
GovernmentForm,
COUNT(*) AS NumberOfCountries
FROM country
GROUP BY GovernmentForm
ORDER BY NumberOfCountries ASC
LIMIT 1;
```

### 50. Langue la plus parlée dans le district de « Dubai »


```sql
SELECT
cl.Language
FROM city c
JOIN countrylanguage cl ON c.CountryCode = cl.CountryCode
WHERE c.District = 'Dubai'
ORDER BY cl.Percentage DESC
LIMIT 1;
```

Ces requêtes couvrent les différentes analyses et statistiques demandées en se


basant sur les schémas de base de données fournis.

You might also like