Vous êtes sur la page 1sur 12

FONCTIONS

D'AGREGATION ET
FONCTIONS

KONE Moussa @ Université Virtuelle de Côte d'Ivoire


Table des
matières
Introduction 3
I - Fonctions d'agrégation 4

1. Fonctions d'agrégation .................................................................................................................................... 4

1.1. Fonctions statistiques .................................................................................................................................................................... 5

1.2. Concaténation .............................................................................................................................................................................. 6


II - Fonctions scalaires 7
1. Fonctions scalaires .......................................................................................................................................... 7

1.1. Manipulation de nombre .............................................................................................................................................................. 8

1.2. Manipulation de chaînes de caractères ....................................................................................................................................... 10


III - Exercices 12
1. Exercices d'autoévaluation ............................................................................................................................ 12
Introduction

Les fonctions d'agrégation, ou de groupement, sont des fonctions qui vont regrouper les lignes. Elles
agissent sur une colonne, et renvoient un résultat unique pour toutes les lignes sélectionnées (ou pour
chaque groupe de lignes, mais nous verrons cela plus tard).
Elles servent majoritairement à faire des statistiques, par exemple compter des lignes, connaître une
moyenne, trouver la valeur maximale par rapport à une colonne.

3
Fonctions d'agrégation

Fonctions d'agrégation
I
1. Fonctions d'agrégation
Les fonctions d'agrégation, ou de groupement, sont des fonctions qui vont regrouper les lignes. Elles
agissent sur une colonne, et renvoient un résultat unique pour toutes les lignes sélectionnées (ou
pour chaque groupe de lignes, mais nous verrons cela plus tard).
Elles servent majoritairement à faire des statistiques, par exemple compter des lignes, connaître
une moyenne, trouver la valeur maximale par rapport à une colonne.

4
1.1. Fonctions statistiques
1.1.1. Nombre de lignes

Syntaxe
La fonction COUNT() permet de savoir combien de lignes sont sélectionnées par la requête.

1 SELECT COUNT(*) AS nbre_client FROM client; // le nombre de client

Syntaxe
Par contre, si on utilise COUNT(colonne), seules les lignes dont la valeur de colonne n'est pas
NULL seront prises en compte.

1SELECT COUNT (id_client) FROM client; //nombre de client dont l'id est non
null

1.1.2. Doublons

Syntaxe
Comme dans une requête SELECT, il est possible d'utiliser le mot-clé DISTINCT pour ne pas
prendre en compte les doublons.

1 SELECT COUNT (DISTINCT id_client) FROM client;

1.1.3. Minimum et maximum

Syntaxe
La fonction MIN(x), retourne la plus petite valeur de x.

La fonction MAX(x), renvoie la plus grande valeur de x.

1 SELECT MIN (solde) ,MAX (solde) FROM compte;

Syntaxe
Notez que MIN() et MAX() ne s'utilisent pas uniquement sur des données numériques. Si vous lui passez
des chaînes de caractères, MIN() récupérera la première chaîne dans l'ordre alphabétique, MAX() la
dernière ; avec des dates, MIN() renverra la date la plus ancienne et MAX() la date la plus récente.

1 SELECT MIN (prenoms_client) ,MAX (prenoms_client),MIN (date_enregistrement) , MAX


(date_enregistrement) FROM client;

1.1.4. Somme et moyenne

Syntaxe
La fonction SUM(x) renvoie la somme de x.

1 SELECT SUM (solde) FROM compte;

5
Syntaxe
La fonction AVG(x) renvoie la moyenne de x.

1 SELECT AVG (solde) FROM compte;

1.2. Concaténation

Syntaxe
La concaténation est faisable avec GROUP_CONCAT(nom_colonne). Cette fonction concatène les
valeurs de nom_colonne pour chaque groupement réalisé.

Exemple
On récupère la somme des soldes de chaque client, et on affiche les clients concernés par la même occasion.

1 SELECT SUM (solde),GROUP_CONCAT(nom_client) FROM client;

Syntaxe
Voici la syntaxe de cette fonction GROUP_CONCAT :

1 GROUP_CONCAT( [DISTINCT] col1 [, col2, ...]


2 [ORDER BY col [ASC | DESC ]]
3 [SEPARATOR sep]
4)

6
Fonctions scalaires

Fonctions scalaires
II
1. Fonctions scalaires
Voici donc quelques fonctions scalaires qui vont vous permettre de manipuler les nombres : faire
des calculs, des arrondis, prendre un nombre au hasard, etc.

7
1.1. Manipulation de nombre
1.1.1. Arrondis

Arrondir un nombre, c'est trouver une valeur proche de ce nombre avec une précision donnée et
selon certains critères.
La précision est en général représentée par le nombre de décimales désirées.

Syntaxe
CEIL(n) ou CEILING(n) arrondit au nombre entier supérieur.

1 SELECT CEIL (3.2),CEIL (3.7); // Renvoie 3.2= 4 et 3.7=4

Syntaxe
FLOOR(n) arrondit au nombre entier inférieur.

1 SELECT FLOOR (3.2),FLOOR (3.7); // Renvoie 3.2= 3 et 3.7=3

Syntaxe
ROUND(n, d) arrondit au nombre à d décimales le plus proche. ROUND(n) équivaut à écrire
ROUND(n, 0), donc arrondit à l'entier le plus proche.

1SELECT ROUND (3.22, 1),ROUND (3.55, 1), ROUND (3.77, 1); // Renvoie 3.2| 3.6
|3.8
2SELECT ROUND (3.2, 1),ROUND (3.5, 1), ROUND (3.7, 1); // Renvoie 3| 4 | 4

Syntaxe
TRUNCATE(n, d) arrondit en enlevant purement et simplement les décimales en trop (donc arrondi
à l'inférieur pour les nombres positifs, au supérieur pour les nombres négatifs).

1SELECT TRUNCATE (3.2, 0),TRUNCATE (3.5, 0), TRUNCATE (3.7, 0); // Renvoie 3| 3
|3
2SELECT TRUNCATE (3.22, 1),TRUNCATE (3.55, 1), TRUNCATE (3.77, 1); // Renvoie
3.2| 3.5 | 3.7

1.1.2. Exposants et racines

Syntaxe
POWER(n, e) (ou POW(n, e)) retourne le résultat de n exposant e ( ne ).

Pour rappel, n exposant e ( ne ) veut dire que l'on multiplie n par lui-même, e fois. Donc par
exemple, 23=2×2×2=8

1 SELECT POW (2, 3),POW (2, 5),POW (5, 2); // Renvoie 8 | 32 | 25

Syntaxe
SQRT(n) donne la racine carrée positive de n ( √n = 2√n )

1 SELECT SQRT (4); // Renvoie 2

8
Exemple
n√X=x 1/n , donc pour obtenir par exemple la racine cinquième de 32, il suffit de faire :

1 SELECT POW (32, 1/5); // Renvoie 2

1.1.3. Divers

Syntaxe
SIGN(n) renvoie le signe du nombre n. Ou plus exactement, SIGN(n) renvoie -1 si n est négatif, 0 si
n vaut 0, et 1 si n est positif.

1 SELECT SIGN (-43), SIGN (0), SIGN (37); // Renvoie -1 | 0 | 1

Syntaxe
ABS(n) retourne la valeur absolue de n, donc sa valeur sans le signe.

1 SELECT ABS (-43), ABS (0), ABS (37); // Renvoie 43 | 0 | 37

Syntaxe
La fonction MOD(n, div) retourne le modulo, donc le reste de la division entière de npar div (comme
l'opérateur % ou MOD)

1 SELECT MOD (56 , 10) ; // Renvoie 6

9
1.2. Manipulation de chaînes de caractères
1.2.1. Longueur et comparaison

Trois fonctions permettent d'avoir des informations sur la longueur d'une chaîne de caractères.
Chaque fonction calcule la longueur d'une manière particulière.
• BIT_LENGTH(chaine) : retourne le nombre de bits de la chaîne. Chaque caractère est encodé
sur un ou plusieurs octets, chaque octet représente huit bits.
• CHAR_LENGTH(chaine) : (ou CHARACTER_LENGTH()) retourne le nombre de caractères de
la chaîne.
• LENGTH(chaine) : retourne le nombre d'octets de la chaîne. Chaque caractère étant représenté par un
ou plusieurs octets (rappel : les caractères que vous pouvez utiliser dépendent de l'encodage choisi).

1.2.2. Retrait et ajout de caractères

Syntaxe
REPEAT(c, n) retourne le texte c, n fois.

1 SELECT REPEAT (‘ok' , 3) ; // Renvoie okokok

Syntaxe
Les fonctions LPAD() et RPAD() appliquées à une chaîne de caractères retournent cette chaîne en lui donnant
une longueur particulière, donnée en paramètre. Si la chaîne de départ est trop longue, elle sera raccourcie, si
elle est trop courte, des caractères seront ajoutés, à gauche de la chaîne pour LPAD(), à droite pour RPAD().
Ces fonctions nécessitent trois paramètres : la chaîne à transformer (texte), la longueur désirée
(long), et le caractère à ajouter si la chaîne est trop courte (caract).

1 SELECT LPAD (‘texte' , 3, ‘@') AS ‘3_gauche_@',


2 LPAD (‘texte' ,7, ‘$') AS ‘7_gauche_$',
3 RPAD (‘texte' ,5, ‘u') AS ‘5_droite_u',
4 RPAD (‘texte' ,7, ‘*') AS ‘7_droite_*',
5 RPAD (‘texte' ,3, ‘-') AS ‘3_droite_-',
6; // Renvoie tex | $$texte | texte | texte** | tex

Syntaxe
Il peut arriver que certaines de vos données aient des caractères inutiles ajoutés avant et/ou après
le texte qui vous intéresse. Dans ce cas, il vous est possible d'utiliser la fonction TRIM(), qui va
supprimer tous ces caractères.
On peut donc choisir entre trois options : BOTH, LEADING et TRAILING.

• BOTH : les caractères seront éliminés à l'avant, et à l'arrière du texte

• LEADING : seuls les caractères à l'avant de la chaîne seront supprimés

• TRAILING : seuls les caractères à l'arrière de la chaîne seront supprimés

Si aucune option n'est précisée, c'est BOTH qui est utilisé par défaut.

1 SELECT TRIM(‘ chantons ‘) AS ‘exemple1'',

10
2 TRIM( LEADING FROM‘ chantons ‘) AS ‘exemple2'
3 TRIM(TRAILING FROM‘ chantons ‘) AS ‘exemple3',
4 TRIM(‘s' FROM ,‘salades') AS ‘exemple4',
5TRIM( LEADING ‘d' FROM ‘ddchantonsdd ‘) AS ‘exemple5',
6TRIM( BOTH ‘z' FROM‘ chantez ‘) AS ‘exemple6'' ;
7; // Renvoie chantons | chantons | chantons | alade | chantonsdd |
chante

Syntaxe
La fonction SUBSTRING() retourne une partie d'une chaîne de caractères. Cette partie est définie par un ou deux
paramètres : pos (obligatoire), qui donne la position de début de la sous-chaîne, et long (facultatif) qui donne la
longueur de la sous-chaîne désirée (si ce paramètre n'est pas précisé, toute la fin de la chaîne est prise).

Quatre syntaxes sont possibles :

• SUBSTRING(chaine, pos)

• SUBSTRING(chaine FROM pos)

• SUBSTRING(chaine, pos, long)

• SUBSTRING(chaine FROM pos FOR long)

1 SELECT SUBSTRING(‘ecole‘, 2) AS ‘exemple1'',


2 SUBSTRING(‘ecole‘ FROM 3) AS ‘exemple2'
3 SUBSTRING(‘danse' 2, 3) AS ‘exemple3',
4 SUBSTRING(‘danse' FROM 3 FOR 1) AS ‘exemple4';
5 // Renvoie cole | ole | ans | n

11
Exercices

Exercices
III
1. Exercices d'autoévaluation
Client(id_client, nom, prenoms, sexe, contact)

Compte(id_compte, numero_compte, solde, #id_client)

- Ecrire la syntaxe SQL, pour compter le nombre de clients enregistrés


- Ecrire la syntaxe SQL, pour donner le solde minimum et maximum des clients
- Ecrire la syntaxe SQL, pour donner le solde total de tous les compte d'un client
- Ecrire la syntaxe SQL, pour afficher 3 clients au hasard.

12

Vous aimerez peut-être aussi