0% found this document useful (0 votes)
30 views10 pages

TP Requêtes SQL Spring

Uploaded by

Chris Koyo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views10 pages

TP Requêtes SQL Spring

Uploaded by

Chris Koyo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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