0% ont trouvé ce document utile (0 vote)
16 vues13 pages

Fonctions MySQL : GROUP BY et HAVING

Ce document traite des opérations arithmétiques et de la fonction CONCAT en MySQL, ainsi que des fonctions d'agrégation telles que MIN, MAX, AVG, SUM, et COUNT. Il explique également l'utilisation des clauses GROUP BY et HAVING pour regrouper et filtrer les résultats des requêtes. Enfin, il fournit des exemples pratiques pour illustrer ces concepts.

Transféré par

4hrjh9rpym
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
16 vues13 pages

Fonctions MySQL : GROUP BY et HAVING

Ce document traite des opérations arithmétiques et de la fonction CONCAT en MySQL, ainsi que des fonctions d'agrégation telles que MIN, MAX, AVG, SUM, et COUNT. Il explique également l'utilisation des clauses GROUP BY et HAVING pour regrouper et filtrer les résultats des requêtes. Enfin, il fournit des exemples pratiques pour illustrer ces concepts.

Transféré par

4hrjh9rpym
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MySQL (session 3)

01 Arithmetics, AS et CONCAT

02 AGGREGATE FONCTIONS 2

03
PLAN 04
GROUP BY / HAVING

Travaux Pratiques

[Link]
Arithmetics, AS
et CONCAT
Arithmetics (+,-,/,*,%) pour calculer et AS pour rommer

SELECT 30 + 20; SELECT 30 - 20;

SELECT PrixHT + TVA AS TTC SELECT Prix - 10 AS PrixReduit


FROM Produits; FROM Produits;

SELECT 17 % 5;

SELECT 30 * 20; SELECT 30 / 10;

SELECT Prix * 1.10 AS NouveauPrix SELECT Prix / 2 AS MoitiePrix


FROM Produits; FROM Produits;
CONCAT pour concaténer

SELECT CONCAT("MySQL ", "est ", "fun!") AS ConcatenatedString;

SELECT CONCAT(Address, " ", PostalCode, " ", City, " ", Country) AS FullAddress
FROM Customers;
AGGREGATE FUNCTIONS
MIN(champ) MAX(champ) AVG(champ) SUM(champ) COUNT(champ)
GROUP_CONCAT(champ) -> va mettre bout à bout séparé par une virgule

SELECT MIN(champ) SELECT MAX(champ) SELECT AVG(champ)


FROM table; FROM table; FROM table;

SELECT MIN(Prix) SELECT MAX(Prix) SELECT AVG(Prix)


FROM Produits; FROM Produits; FROM Produits;

SELECT SUM(champ) SELECT COUNT(champ) SELECT GROUP_CONCAT(champ)


FROM table; FROM table; FROM table;

SELECT SUM(Prix) SELECT COUNT(*) SELECT GROUP_CONCAT(Nom)


FROM Produits; FROM Produits FROM Produits;
WHERE Prix < 10;
GROUP BY / HAVING
GROUP BY / HAVING

Structure:

SELECT [DISTINCT] liste_colonnes_séparées_par_virgules


FROM nom_table
[WHERE conditions]
[GROUP BY liste_colonnes_séparées_par_virgules]
[HAVING conditions]
[ORDER BY liste_colonnes_séparées_par_virgules [ASC | DESC]]
[LIMIT [décalage,] nombre_de_lignes]
GROUP BY pour grouper les résultats

Si on veut afficher des champs supplémentaires à ceux qu’on utilise pour grouper, il faut
OBLIGATOIREMENT utiliser des fonctions d'agrégats (count, sum, avg, min, max, group_concat).

SELECT Country, COUNT(CustomerID) AS TotalCustomers


FROM Customers
GROUP BY Country;

SELECT Country, City, COUNT(CustomerID) AS TotalCustomers


FROM Customers
GROUP BY Country, City;

SELECT Eleve_id, GROUP_CONCAT(Note) AS Notes


FROM Notes
GROUP BY Eleve_id;
GROUP BY et les autres parties de la requête.

Le filtre WHERE est SELECT Categorie, COUNT(Prix) AS NbrProduits, AVG(Prix) AS PrixMoyen


appliqué AVANT le FROM Produits
WHERE Pays = 'France'
GROUP BY GROUP BY Categorie;

SELECT Categorie, COUNT(Prix) AS NbrProduits, AVG(Prix) AS PrixMoyen


FROM Produits
WHERE Pays = 'France'
GROUP BY Categorie
Le filtre ORDER BY et ORDER BY NbrProduits DESC
LIMIT 10, 5
le LIMIT sont appliqués
APRES le GROUP BY
HAVING comme un WHERE mais s’appliquant APRÈS le GROUP BY.

3) SELECT Categorie, COUNT(Prix) AS NbrProduits, AVG(Prix) AS PrixMoyen


FROM Produits
1) WHERE Pays = 'France'
2) GROUP BY Categorie
4) HAVING NbrProduits > 5
5) ORDER BY NbrProduits DESC
6) LIMIT 10, 5

En résumé voilà ce qui se passe:


1. Les produits sont filtrés pour ne garder uniquement ceux dont le Pays est 'France'
2. Les résultats sont groupés par Categorie.
3. Pour chaque Categorie cela calcule le NbrProduits et le PrixMoyen
4. PUIS on filtre avec HAVING en gardant uniquement les lignes où NbrProduits est supérieurs à 5.
5. Ensuite ces lignes sont ordonnées par NbrProduits décroissant.
6. Enfin on limite l’affichage à 5 lignes en commençant à l’indice 10.
Travaux
Pratiques

Vous aimerez peut-être aussi