0% ont trouvé ce document utile (0 vote)
35 vues8 pages

Agrégation SQL : Groupes et Fonctions

Ce document présente les concepts clés de l'agrégation en SQL, y compris la clause group by pour regrouper les lignes, les fonctions d'agrégation pour réduire chaque groupe à une valeur, et la clause having pour filtrer les groupes.

Transféré par

Nasreddine Taibi
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

Thèmes abordés

  • nuplets,
  • techniques d’agrégation,
  • ressources SQL,
  • doublons,
  • valeurs null,
  • exemples SQL,
  • somme,
  • manipulation de données,
  • valeurs distinctes,
  • applications SQL
0% ont trouvé ce document utile (0 vote)
35 vues8 pages

Agrégation SQL : Groupes et Fonctions

Ce document présente les concepts clés de l'agrégation en SQL, y compris la clause group by pour regrouper les lignes, les fonctions d'agrégation pour réduire chaque groupe à une valeur, et la clause having pour filtrer les groupes.

Transféré par

Nasreddine Taibi
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

Thèmes abordés

  • nuplets,
  • techniques d’agrégation,
  • ressources SQL,
  • doublons,
  • valeurs null,
  • exemples SQL,
  • somme,
  • manipulation de données,
  • valeurs distinctes,
  • applications SQL

Cours de bases de données,

[Link]

SQL: agrégation

1Philippe Rigaux
SQL, agrégation
Cette session présente les agrégats en SQL. Elle consiste à regrouper des lignes et à
appliquer à chaque groupe une fonction d’agrégation.

Contenu :
• La clause group by
• Fonctions d’agrégation
• La clause having

Ces diapositives correspondent au support en ligne disponible


sur le site [Link]

2
Principe général
On définit des groupes de lignes ayant en commun une ou plusieurs valeurs.

On ramène chaque groupe à une seule valeur en appliquant une fonction d’agrégation.

Cas le plus simple : un seul groupe, obtenu par un bloc select from where.
select count(*) as nbPersonnes, count(prénom) as nbPrénoms,
count(nom) as nbNoms
from Personne

nbPersonnes nbPrénoms nbNoms


7 6 7

3
Le group by
La clause group by att1, ..., attn partitionne le résultat d’un bloc select from
where en fonction des att1, ..., attn

Chaque groupe contient les lignes qui partagent les mêmes valeurs pour att1, ...,
attn.

select idAppart, sum(quotePart) as totalQP


from Propriétaire
group by idAppart

Procède en deux étapes : d’abord on groupe, puis on agrège.

4
Décomposons : l’étape de regroupement
On obtient une structure intermédiaire, avec autant de lignes que de valeurs distinctes
pour les attributs de regroupement (ici, idAppart).

idAppart Groupe (idPersonne, idAppart, quotePart)


100 [(1, 100, 33), (5, 100, 67)]
101 [(1, 101, 100)]
102 [(5, 102, 100)]
103 [(2, 103, 100)]
104 [(2, 104, 100)]
201 [(5, 201, 100)]
202 [(1, 202, 100)]

Ce n’est pas une table en première forme normale.

5
L’étape d’agrégation
La fonction d’agrégation ramène un groupe à une valeur

idAppart SUM(quotePart)
100 SUM (33, 67) = 100
101 SUM (100) = 100
102 SUM (100) = 100
103 SUM (100) = 100
104 SUM (100) = 100
201 SUM (100) = 100
202 SUM (100) = 100

Cette fois c’est une table en première forme normale.

6
La clause having
Exprime un critère de sélection sur le résultats de la fonction d’agrégation.

Bien distinguer de la clause where qui s’applique aux nuplets

select idAppart, count(*) as nbProprios


from Propriétaire
group by idAppart
having count(*) >= 2

idAppart nbProprios
100 2

7
À retenir

Agrégats = extension de SQL.

• S’applique au résultat d’une requête standard


• Partitionne en groupes de nuplets partageant les mêmes valeurs de regroupement
• Réduit chaque groupe à une valeur grâce à une fonction d’agrégation
• On peut filtrer les groupes obtenus avec having

Attention aux valeurs à null et aux doublons.

Vous aimerez peut-être aussi