Skip to content
Snippets Groups Projects
Commit 3e055797 authored by Vincent Namy (EDU_GE)'s avatar Vincent Namy (EDU_GE)
Browse files

[DB2] Ajout exos SQL Max Count Avg

parent 1c9a1959
Branches
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# Premier pas en SQL - Suite
%% Cell type:markdown id: tags:
## Opérations sur les colonnes
%% Cell type:markdown id: tags:
Voici une nouvelle table nommée **RR** avec la structure suivante :
| Attribut | Type | Explication |
| ------------- | ------------- | ------------- |
| id | INTEGER (clé) | |
| Country | TEXT | |
| Year | INTEGER | |
| DebtToGDP | REAL | dette en pourcentage du PIB |
| Growth | REAL | la croissance |
| DebtCategory | INTEGER | |
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 1 </h3>
Quelques requêtes pour s'échauffer...
a) Entrer une requête SQL pour afficher la table :
%% Cell type:code id: tags:
``` sql
```
%% Cell type:markdown id: tags:
b) Vérifier que les données contiennent bien 20 pays en les listant.
%% Cell type:code id: tags:
``` sql
```
%% Cell type:markdown id: tags:
c) Vérifier aussi que les années vont de 1946 à 2009
%% Cell type:code id: tags:
``` sql
```
%% Cell type:markdown id: tags:
d) Lister par ordre croissant les dix années où la croissance a été la plus faible en France.
%% Cell type:code id: tags:
``` sql
```
%% Cell type:markdown id: tags:
e) Lister les pays où la croissance a dépassé 15 %
%% Cell type:code id: tags:
``` sql
```
%% Cell type:markdown id: tags:breakpoint
*Ctrl+Enter pour continuer*
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 2 </h3>
Écrire une requête SQL permettant d'obtenir le pays, l'année et le PIB où la dette (par rapport au PIB) a été la plus importante.
%% Cell type:code id: tags:
``` sql
```
%% Cell type:markdown id: tags:breakpoint
*Ctrl+Enter pour continuer quand vous avez trouvé le résultat*
%% Cell type:markdown id: tags:
!!! success
Vous avez *normalement* écrit une requête de classement par ordre
décroissant associée à une clause LIMIT. En réalité on recherche ici le
maximum d'une colonne, le langage SQL permet d'opérer sur des colonnes :
* MIN et MAX permettent d'obtenir respectivement le maximum ou le
minimum d'un champ.
* SUM permet de calculer la somme sur un ensemble
d'enregistrements.
* AVG permet de calculer la moyenne sur un ensemble
d'enregistrements.
* COUNT permet de compter le nombre d'enregistrements.
Vérifier si la requête ci-dessous donne le même résultat:
!!!
Vérifier si la requête ci-dessous donne le même résultat:
%% Cell type:code id: tags:
``` sql
SELECT Country, Year, Growth, MAX(DebtToGDP) FROM RR
```
%% Output
Country Year Growth MAX(DebtToGDP)
UK 1946 -2.46 247.48
%% Cell type:markdown id: tags:
Puis utilisez les autres commandes pour calculer...
%% Cell type:markdown id: tags:
L'année et le pays où la croissance était la plus faible :
%% Cell type:code id: tags:
``` sql
```
%% Cell type:markdown id: tags:
La moyenne des dettes de la France :
%% Cell type:code id: tags:
``` sql
```
%% Cell type:markdown id: tags:
Le nombre d'années où l'Australie a eu une dette supérieure à 100% du PIB :
%% Cell type:code id: tags:
``` sql
```
%% Cell type:markdown id: tags:breakpoint
*Ctrl+Enter pour continuer*
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 3 </h3>
Regarder les 10 premières minutes de la vidéo https://youtu.be/yeX_Zs7zztY .
En vous aidant de l’opérateur AVG, retrouver à l'aide de SQL les vraies valeurs
données à 8min30 de croissance moyenne.
%% Cell type:code id: tags:
``` sql
```
%% Cell type:raw id: tags:
~4,2 % :
~3,1 % :
~3,2 % :
~2,2 % :
%% Cell type:markdown id: tags:breakpoint
*Ctrl+Enter pour continuer*
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 4 - Pour aller plus loin ... </h3>
Les opérations sur les colonnes sont particulièrement utiles en lien avec la
clause GROUP BY. Par exemple, si on souhaite obtenir la somme de la
croissance pour chacun des 20 pays depuis 1970 :
```sql
SELECT country, SUM(Growth) FROM RR WHERE Year>=1970 GROUP BY Country
```
On peut même renommer la colonne SUM(Growth) des résultats grâce à AS et donc l'utiliser comme critère de classement:
```sql
SELECT country, SUM(Growth) AS moy70 FROM RRWHERE Year>=1970 GROUP BY Country ORDER BY moy70 DESC;
```
Écrire une seule requête permettant d'obtenir les taux de croissance moyenne pour chacune des catégories de dette.
%% Cell type:code id: tags:
``` sql
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment