Vous êtes sur la page 1sur 17

Partie 4

Module 1

Regroupement
Overview et synthèse
of HTML and CSS des
données
Dans cette partie vous allez apprendre

• Les fonctions d'agrégation


• Le regroupement des données
• Les fonctions intégrées de MySQL
Les fonctions d'agrégation

• Introduction
• Les fonctions d'agrégation sont des fonctions qu'on applique
sur un ensemble d'enregistrements pour effectuer un calcul
et elles renvoient une seule valeur comme résultat.
• Généralement les fonctions d'agrégation sont utilisées pour
faire des synthèses de données.
• Il existe plusieurs fonctions d'agrégation à savoir :
• MIN()
• MAX()
• COUNT()
• SUM()
• AVG()
Les fonctions d'agrégation

• Les fonctions MIN() et MAX()


• La fonction MIN() renvoie la plus petite valeur de la colonne
sélectionnée.
• La fonction MAX() renvoie la plus grande valeur de la
colonne sélectionnée.
• La syntaxe de MIN() :
SELECT MIN(column_name)
FROM table_name
WHERE condition;

• La syntaxe de MAX() :
SELECT MAX(column_name)
FROM table_name
WHERE condition;
Les fonctions d'agrégation

• Les fonctions MIN() et MAX()


• Exemple :
SELECT MIN(Price) AS SmallestPrice,
FROM Products;

SELECT MAX(Price)
FROM Products WHERE CategoryID = 2;

SELECT MIN(Price) AS SmallestPrice,


MAX(Price) AS BiggestPrice
FROM Products;
Les fonctions d'agrégation

• Les fonctions COUNT(), SUM() et AVG()


• La fonction COUNT() renvoie le nombre de lignes
correspondant à un critère spécifié.
• La fonction SUM() renvoie la somme totale d'une colonne
numérique.
• La fonction AVG() renvoie la moyenne d'une colonne
numérique.
• Les syntaxes :
SELECT COUNT(column_name) FROM table_name
WHERE condition;
SELECT SUM(column_name) FROM table_name
WHERE condition;
SELECT AVG(column_name) FROM table_name
WHERE condition;
Les fonctions d'agrégation

• Les fonctions COUNT(), SUM() et AVG()


• Exemple 1 : nombre d'enregistrement de la table Products.
SELECT COUNT(*) FROM Products;
SELECT COUNT(ProductID) FROM Products;

• Exemple 2 : somme des quantités de la table Order_details.


SELECT SUM(Quantity) FROM Order_details;

• Exemple 3 : la moyenne prix de la table Products.


SELECT AVG(Price) FROM Products;

SELECT SUM(Price)/COUNT(ProductID) FROM Products;


Le regroupement des données

• L'instruction GROUP BY
• L'instruction GROUP BY permet de regrouper les lignes d'une
table par rapport à une ou plusieurs colonnes.
• L'instruction GROUP BY est souvent utilisée avec des
fonctions d'agrégation (COUNT, MAX, MIN, SUM, AVG) pour
regrouper l'ensemble de résultats en une ou plusieurs
colonnes.
• La syntaxe de GROUP BY :
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Le regroupement des données

• L'instruction GROUP BY
• Exemple 1 : nombre de client groupé par pays.
SELECT CustomerID, CustomerName, Country FROM Customers;
SELECT Country, COUNT(CustomerID)
FROM Customers
GROUP BY Country;
Le regroupement des données

• L'instruction GROUP BY
• Exemple 2 : nombre de client groupé par pays et trier par
ordre décroissant par rapport au nombre de client
SELECT Country, COUNT(CustomerID)
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
Le regroupement des données

• L'instruction GROUP BY
• Exemple 3 : effectue plusieurs regroupements
SELECT Country, City, COUNT(CustomerID)
FROM Customers
GROUP BY Country, City
ORDER BY 1 ASC;
Le regroupement des données

• La clause HAVING
• La clause HAVING a été ajoutée à SQL car la clause WHERE
n'est pas utilisée avec des fonctions d'agrégation.
• Il ne faut jamais utiliser WHERE après le regroupement GROUP
BY ou avec une fonction d'agrégation (COUNT(), MIN()
,MAX(), SUM(), AVG(),…).
• La syntaxe de HAVING :
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
Le regroupement des données

• La clause HAVING
• Il existe deux manière pour afficher le total des prix dans la
table Products pour la CategoryID = 2 :
•Utiliser la clause WHERE pour filtrer les lignes avant l'agrégation :
SELECT CategoryID, SUM(Price)
FROM Products
WHERE CategoryID = 2
GROUP BY CategoryID;
•Utiliser la clause HAVING pour filtrer les lignes après l'agrégation :
SELECT CategoryID, SUM(Price)
FROM Products
GROUP BY CategoryID
HAVING CategoryID = 2;
Le regroupement des données

• La clause HAVING
• L'exemple suivant regroupe le nombre de clients par pays et
on affiche seulement les pays qui ont au moins 5 clients :
SELECT Country, COUNT(CustomerID)
FROM Customers
GROUP BY Country;

SELECT Country, COUNT(CustomerID)


FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) >= 5;
Les fonctions intégrées de MySQL

• Types de fonctions intégrées


• MySQL dispose de 3 types de fonctions intégrées :
• Les fonctions de chaîne de caractères : CONCAT(), CONCAT_WS(),
LOWER(), LTRIM(), REPEAT(), REPLACE(), SUBSTR(), UPPER(), …
• Les fonctions numériques : ABS(), DIV(), CEIL(), FLOOR(), MIN(),
MAX(), MOD(), POW(), SIN(), COS(), TAN(), SQRT(),…
• Les fonctions des dates : CURDATE(), SYSDATE() , CURTIME(), YEAR(),
MONTH(), DAY(), DATEDIFF(), TIMESTAMPDIFF(), …
• Pour plus d'information consulter le lien :
https://www.w3schools.com/mysql/mysql_ref_functions.asp
Les fonctions intégrées de MySQL

• Les fonctions intégrées


• Exemple 1 :
SELECT
CONCAT(CustomerID,':',UPPER(CustomerName)) AS RESULT1,
REPLACE(PostalCode,'0','X') AS RESULT2
FROM Customers;
Les fonctions intégrées de MySQL

• Les fonctions intégrées


• Exemple 2 :
SELECT EmployeeID, BirthDate, YEAR(BirthDate),
MONTH(BirthDate), DAY(BirthDate),
DATEDIFF(CURDATE(), BirthDate) AS 'DAYS',
FLOOR(DATEDIFF(CURDATE(), BirthDate) / 365) AS 'YEARS',
TIMESTAMPDIFF(YEAR, BirthDate, CURDATE()) AS 'YEARS',
TIMESTAMPDIFF(MONTH, BirthDate, CURDATE()) AS 'MONTHS',
TIMESTAMPDIFF(DAY, BirthDate, CURDATE()) AS 'DAYS'
FROM Employees;

Vous aimerez peut-être aussi