Aller au contenu

Fonctions statistiques et filtrage

  • Fonctions statistiques
  • Opérateurs d'ensemble
  • Atelier

Plusieurs fonctions statistiques existent dans les agrégats.

On a déjà vu la fonction count qui permet de compter le nombre d’enregistrements.

On peut utiliser les fonctions statistiques hors des agrégats de données. Par contre, la restriction aux colonnes non agrégées s’applique.

Fonctions statistiques

Sauf pour count, les fonctions sont appellées sur des colonnes de type numérique.

Fonction Opération
sum(nom_colonne) Somme les valeurs de la liste
min(nom_colonne) Trouve la valeur minimale parmi la liste
max(nom_colonne) Trouve la valeur maximale parmi la liste
avg(nom_colonne) Calcule la valeur moyenne de la liste
count(nom_colonne) Compte le nombre de valeurs de la liste
std(nom_colonne) Calcule l'écart-type des valeurs de la liste

Trouver le minimum

Affichez la note minimale qu’un étudiant a obtenue à l’évaluation portant l’id 5.

SELECT min(note) FROM evaluations_etudiants
    WHERE evaluation_id = 5;

--- Exercice 2.6.1 ---

A. Sélectionnez la valeur de la plus haute note obtenue à l'évaluation 9.

B. Sélectionnez le nom de l'étudiant ayant obtenu la plus haute note à l'évaluation 9.

C. Sélectionnez la note totale de l'étudiant 1234567 au groupe 2.

D. Sélectionnez la moyenne (en pourcentage) de l'évaluation 7.

Afficher toutes les valeurs

Pour s'aider dans le debogage, on peut afficher le contenu d'un groupe. La fonction qui permet cela est GROUP_CONCAT.

Par exemple, voici le nom des étudiants inscrit au programme 420.01.

SELECT GROUP_CONCAT(etudiants.nom), count(*) FROM etudiants 
    INNER JOIN programmes ON etudiants.code_programme = programmes.code_programme 
    WHERE programmes.code_programme = '420.01'
    GROUP BY etudiants.nom;

Opérateurs d'ensemble

Des opérateurs existent sur les ensembles pour simplifier les requêtes de sélection.

Deux opérateurs existent : - BETWEEN - IN

Between

Le mot-clé BETWEEN permet de chercher un enregistrement entre deux valeurs.

... WHERE nom_colonne BETWEEN minimum AND maximum

-- équivalent à

... WHERE nom_colonne >= minimum AND nom_colonne <= maximum

Négation

On peut appliquer la négation avec l'opérateur NOT à l'opérateur BETWEEN pour signifier toutes les valeurs sauf celles dans cet interval. La syntaxe est :

... WHERE nom_colonne NOT BETWEEN minimum AND maximum

IN

Pour vérifier si la colonne correspond à une valeur parmi une liste, on peut utiliser l’opérateur IN.

... WHERE nom_colonne IN (valeur1, valeur2 …)

-- équivalent à

... WHERE nom_colonne = valeur1 OR nom_colonne = valeur2 OR …

IN avec Négation

On peut aussi utiliser l'opérateur de négation NOT devant l'opérateur IN pour sélectionner toutes les valeurs sauf celles dans l’intervalle.

... WHERE nom_colonne NOT IN (valeur1, valeur2, ...)

--- Exercice 2.6.2 ---

Sélectionnez le nom des étudiants qui ont suivi au moins l'un des cours suivants :

  • 420-2B4-VI
  • 420-2B3-VI
  • 420-3B1-VI

Sélectionnez les documents remis avant le 16 octobre 2020 ou après la fin de la session automne 2020 (19 décembre 2020)