id_joueuse | nom | prenom | elo | ville_club |
---|---|---|---|---|
1 | Guichard | Pauline | 2357 | Asnieres |
2 | Daulyte | Deimante | 2371 | Chartres |
3 | Navrotescu | Andreea | 2338 | Asnieres |
4 | Sebag | Marie | 2448 | Bischwiller |
5 | Millet | Sophie | 2366 | Asnieres |
6 | Skrichempko | Almira | 2361 | Bischwiller |
Quelques questions que l’on peut se poser :
count |
---|
5 |
count |
---|
6 |
L’opérateur FILTER
permet de calculer une agrégation conditionnelle.
SELECT COUNT(*) FILTER (WHERE elo BETWEEN 2300 AND 2399) AS niv_fm,
COUNT(*) FILTER (WHERE elo BETWEEN 2400 AND 2499) AS niv_im
FROM echecs.joueuse;
niv_fm | niv_im |
---|---|
5 | 1 |
sum |
---|
14223 |
max | min | avg |
---|---|---|
2448 | 2338 | 2373.5 |
Tip
Vous pouvez également calculer : VARIANCE
, STDDEV
.
Comment afficher la joueuse avec le plus grand elo ? 😵
En utilisant une sous-requête :
SELECT MAX(elo) FROM echecs.joueuse
➡️ renvoie un nombreComment obtenir la moyenne elo par club ?
Vous pouvez grouper en utilisant plusieurs colonnes.
Important
Les colonnes présentes dans le SELECT doivent impérativement être présentes dans le GROUP BY.
L’inverse n’est pas vrai. Vous pouvez avoir des colonnes du GROUP BY que vous n’affichez pas dans le SELECT.
Comment faire pour afficher uniquement les clubs où la moyenne élo est inférieure à 2400 ?