Fonctions d'agrégation SQL. Fonctions d'agrégation SQL - SUM, MIN, MAX, AVG, COUNT

par la valeur de la colonne Discipline. Nous obtiendrons 4 groupes pour lesquels nous pourrons calculer certaines valeurs de groupe, telles que le nombre de tuples dans le groupe, la valeur maximale ou minimale de la colonne Score. Tableau 5.7. Fonctions d'agrégation
Fonction Résultat
COMPTER Nombre de lignes ou de valeurs de champs non vides sélectionnées par la requête
SOMME La somme de toutes les valeurs sélectionnées pour ce champ
MOYENNE La moyenne arithmétique de toutes les valeurs sélectionnées pour ce champ
MINIMUM La plus petite de toutes les valeurs sélectionnées pour ce champ
MAXIMUM La plus grande de toutes les valeurs sélectionnées pour ce champ
R1
Nom et prénom Discipline Grade
Groupe 1 Petrov F.I. Bases de données 5
Sidorov K.A. Bases de données 4
Mironov A.V. Bases de données 2
Stepanova K.E. Bases de données 2
Krylova T.S. Bases de données 5
Vladimirov V.A. Bases de données 5
Groupe 2 Sidorov K.A. Théorie de l'information 4
Stepanova K.E. Théorie de l'information 2
Krylova T.S. Théorie de l'information 5
Mironov A.V. Théorie de l'information Nul
Groupe 3 Trofimov P.A. Réseaux et télécommunications 4
Ivanova E.A. Réseaux et télécommunications 5
Utkina N.V. Réseaux et télécommunications 5
Groupe 4 Vladimirov V.A. langue anglaise 4
Trofimov P.A. langue anglaise 5
Ivanova E.A. langue anglaise 3
Petrov F.I. langue anglaise 5

Fonctions d'agrégation sont utilisés de la même manière que les noms de champ dans une instruction SELECT, mais à une exception près : ils prennent le nom du champ comme argument. Seuls les champs numériques peuvent être utilisés avec les fonctions SUM et AVG. Les champs numériques et caractères peuvent être utilisés avec les fonctions COUNT , MAX et MIN. Lorsqu'ils sont utilisés avec des champs de caractères, MAX et MIN les traduiront en code ASCII équivalent et les traiteront par ordre alphabétique. Certains SGBD autorisent l'utilisation d'agrégats imbriqués, mais il s'agit d'un écart par rapport à la norme ANSI avec toutes les conséquences qui en découlent.

Par exemple, vous pouvez calculer le nombre d’étudiants ayant passé des examens dans chaque discipline. Pour cela, vous devez lancer une requête regroupée par le champ "Discipline" et afficher comme résultat le nom de la discipline et le nombre de lignes du groupe pour cette discipline. Utiliser le caractère * comme argument de la fonction COUNT signifie compter toutes les lignes du groupe.

SELECT R1.Discipline, COUNT(*) FROM R1 GROUP BY R1.Discipline

Résultat:

Si nous voulons compter le nombre de personnes qui ont réussi l'examen dans n'importe quelle discipline, nous devons alors exclure les valeurs incertaines du ratio d'origine avant de les regrouper. Dans ce cas, la requête ressemblera à ceci :

On obtient le résultat :

Dans ce cas, la ligne avec l'étudiant

Mironov A.V. Théorie de l'information Nul

ne rentrera pas dans l'ensemble des tuples avant le regroupement, donc le nombre de tuples dans le groupe à discipliner " Théorie de l'information" sera 1 de moins.

Peut être utilisé fonctions d'agrégationégalement sans l'opération de pré-regroupement, auquel cas la relation entière est considérée comme un seul groupe et pour ce groupe, une valeur par groupe peut être calculée.

En revenant à la base de données « Sessions » (tableaux R1, R2, R3), on retrouve le nombre d'examens réussis :

Ceci est bien sûr différent de la sélection d'un champ, puisqu'une seule valeur est toujours renvoyée, quel que soit le nombre de lignes du tableau. Argument fonctions d'agrégation il peut y avoir des colonnes de tableau distinctes. Mais pour calculer, par exemple, le nombre de valeurs distinctes d'une certaine colonne dans un groupe, vous devez utiliser le mot-clé DISTINCT avec le nom de la colonne. Calculons le nombre de notes différentes reçues dans chaque discipline :

Résultat:

Le résultat peut inclure la valeur du champ de regroupement et plusieurs fonctions d'agrégation, et dans des conditions de regroupement, vous pouvez utiliser plusieurs champs. Dans ce cas, les groupes sont formés selon un ensemble de champs de regroupement spécifiés. Les opérations de fonction d’agrégation peuvent être appliquées pour joindre plusieurs tables sources. Par exemple, posons la question : déterminer pour chaque groupe et chaque discipline le nombre d’étudiants ayant réussi l’examen et la note moyenne dans la discipline.

Résultat:

Nous ne pouvons pas utiliser fonctions d'agrégation dans la clause WHERE car les prédicats sont évalués en termes d'une seule ligne, et fonctions d'agrégation- en termes de groupes de lignes.

La clause GROUP BY vous permet de définir un sous-ensemble de valeurs dans un champ particulier par rapport à un autre champ et d'appliquer une fonction d'agrégation au sous-ensemble. Cela permet de combiner des champs et fonctions d'agrégation dans une seule clause SELECT. Fonctions d'agrégation peut être utilisé à la fois dans l'expression de sortie des résultats de la ligne SELECT et dans l'expression de la condition de traitement des groupes HAVING générés. Dans ce cas, chaque fonction d'agrégation est calculée pour chaque groupe sélectionné. Valeurs obtenues à partir du calcul fonctions d'agrégation, peut être utilisé pour afficher les résultats correspondants ou pour conditionner la sélection des groupes.

Créons une requête qui affiche les groupes dans lesquels plus d'une mauvaise note a été obtenue dans une discipline aux examens :

À l'avenir, à titre d'exemple, nous travaillerons non pas avec la base de données « Session », mais avec la base de données « Banque », constituée d'une table F, qui stocke la relation F contenant des informations sur les comptes dans les succursales d'une certaine banque :

F = (N, nom complet, succursale, date d'ouverture, date de clôture, solde) ; Q = (succursale, ville) ;

puisque sur cette base, il est possible d'illustrer plus clairement le travail avec des fonctions d'agrégation et de regroupement.

Par exemple, supposons que nous souhaitions connaître le solde total des comptes bancaires. Vous pouvez effectuer une requête distincte pour chacun d'eux en sélectionnant SUM(Balance) dans le tableau de chaque branche. GROUP BY vous permettra cependant de tous les mettre en une seule commande :

SELECT Branche, SUM(Remaining) FROM F GROUP BY Branche ;

GROUP BY s'applique fonctions d'agrégation indépendamment pour chaque groupe défini à l'aide de la valeur du champ Branche. Le groupe est constitué de lignes avec la même valeur de champ Branche et

Peut effectuer un traitement de groupe généralisé des valeurs de champ. Cela se fait à l'aide de fonctions d'agrégation. Les fonctions d'agrégation produisent une valeur unique pour un groupe de tables entier. SQL fournit les fonctions d'agrégation suivantes :

  • COMPTER– compte le nombre de lignes du tableau avec des valeurs non NULL du champ spécifié en argument.
  • SOMME– calcule la somme arithmétique de toutes les valeurs sélectionnées pour un champ donné.
  • MOYENNE– fait la moyenne de toutes les valeurs sélectionnées de ce champ.
  • MAXIMUM– affiche la plus grande valeur de toutes les valeurs sélectionnées pour ce champ.
  • MINIMUM– affiche la plus petite valeur de toutes les valeurs sélectionnées pour ce champ.

    Utilisation des fonctions d'agrégation

    Les fonctions d'agrégation sont utilisées de la même manière que les noms de champs dans la clause SELECT d'une requête, à une exception près : elles prennent les noms de champs comme argument. Seuls les champs numériques peuvent être utilisés avec SOMME Et MOYENNE. AVEC COMPTER, MAXIMUM, Et MINIMUM Les champs numériques et caractères peuvent être utilisés. Lorsqu'il est utilisé avec des champs de caractères MAXIMUM Et MINIMUM les traduira en équivalent ASCII. Cela signifie que MINIMUM choisira le premier, et MAXIMUM dernière valeur par ordre alphabétique.

    Pour trouver le montant total des ventes dans le tableau des ventes, nous devons écrire la requête suivante :

    SELECT SUM(SSum) FROM Vend

    En conséquence nous obtenons :

    Cette requête comptait le nombre de valeurs non vides dans le champ SNum de la table Sells. Si on réécrit la requête comme suit :

    SELECT COUNT(SDate) FROM Vend

    En conséquence nous obtenons :

    COMPTE DE SDate
    4

    Différents résultats de requête lors du calcul de ce qui semble être la même chose sont obtenus car l'une des valeurs du champ SDate est vide ( NUL). Soyez prudent lorsque vous utilisez de telles requêtes.

Apprenons à résumer. Non, ce ne sont pas les résultats de l'étude de SQL, mais les résultats des valeurs des colonnes des tables de la base de données. Les fonctions d'agrégation SQL opèrent sur les valeurs d'une colonne pour produire une valeur résultante unique. Les fonctions d'agrégation SQL les plus couramment utilisées sont SUM, MIN, MAX, AVG et COUNT. Il faut distinguer deux cas d’utilisation de fonctions d’agrégation. Premièrement, les fonctions d'agrégation sont utilisées seules et renvoient une valeur résultante unique. Deuxièmement, les fonctions d'agrégation sont utilisées avec la clause SQL GROUP BY, c'est-à-dire le regroupement par champs (colonnes) pour obtenir les valeurs résultantes dans chaque groupe. Considérons d'abord les cas d'utilisation de fonctions d'agrégation sans regroupement.

Fonction SOMME SQL

La fonction SQL SUM renvoie la somme des valeurs dans une colonne de table de base de données. Il ne peut être appliqué qu'aux colonnes dont les valeurs sont des nombres. Les requêtes SQL pour obtenir la somme résultante commencent comme ceci :

SELECT SOMME(COLUMN_NAME)...

Cette expression est suivie de FROM (TABLE_NAME), puis une condition peut être spécifiée à l'aide de la clause WHERE. De plus, le nom de la colonne peut être précédé de DISTINCT, ce qui signifie que seules les valeurs uniques seront comptées. Par défaut, toutes les valeurs sont prises en compte (pour cela vous pouvez spécifiquement préciser non pas DISTINCT, mais ALL, mais le mot ALL n'est pas obligatoire).

Exemple 1. Il existe une base de données d'entreprise contenant des données sur ses divisions et ses employés. Le tableau Personnel comporte également une colonne contenant des données sur les salaires des employés. La sélection du tableau ressemble à ceci (pour agrandir l'image, cliquez dessus avec le bouton gauche de la souris) :

Pour obtenir la somme de tous les salaires, utilisez la requête suivante :

SELECT SUM(Salaire) FROM Personnel

Cette requête renverra la valeur 287664,63.

Et maintenant. Dans les exercices, nous commençons déjà à compliquer les tâches, en les rapprochant de celles rencontrées dans la pratique.

Fonction SQLMIN

La fonction SQL MIN opère également sur les colonnes dont les valeurs sont des nombres et renvoie le minimum de toutes les valeurs de la colonne. Cette fonction a une syntaxe similaire à celle de la fonction SOMME.

Exemple 3. La base de données et la table sont les mêmes que dans l'exemple 1.

Il nous faut connaître le salaire minimum pour les salariés du département numéro 42. Pour ce faire, rédigez la demande suivante :

La requête renverra la valeur 10505,90.

Et encore exercice d'auto-résolution. Dans cet exercice et dans d’autres, vous aurez besoin non seulement de la table Staff, mais également de la table Org, contenant des données sur les divisions de l’entreprise :


Exemple 4. La table Org est ajoutée à la table Staff, contenant des données sur les services de l'entreprise. Imprimez le nombre minimum d'années travaillées par un employé dans un département situé à Boston.

Fonction SQL MAX

La fonction SQL MAX fonctionne de la même manière et a une syntaxe similaire, qui est utilisée lorsque vous devez déterminer la valeur maximale parmi toutes les valeurs d'une colonne.

Exemple 5.

Nous devons connaître le salaire maximum des employés du service numéro 42. Pour ce faire, rédigez la demande suivante :

La requête renverra la valeur 18352.80

Le moment est venu exercices pour une solution indépendante.

Exemple 6. Nous travaillons à nouveau avec deux tables - Staff et Org. Afficher le nom du département et la valeur maximale de la commission reçue par un employé du département appartenant au groupe de départements (Division) Est. Utiliser JOIN (rejoindre des tables) .

Fonction SQL AVG

Ce qui est indiqué concernant la syntaxe des fonctions décrites précédemment est également vrai pour la fonction SQL AVG. Cette fonction renvoie la moyenne de toutes les valeurs d'une colonne.

Exemple 7. La base de données et la table sont les mêmes que dans les exemples précédents.

Supposons que vous souhaitiez connaître l'ancienneté moyenne des salariés du service numéro 42. Pour ce faire, écrivez la requête suivante :

Le résultat sera 6,33

Exemple 8. Nous travaillons avec une seule table - le personnel. Afficher le salaire moyen des salariés ayant 4 à 6 ans d’expérience.

Fonction SQL COUNT

La fonction SQL COUNT renvoie le nombre d'enregistrements dans une table de base de données. Si vous spécifiez SELECT COUNT(COLUMN_NAME) ... dans la requête, le résultat sera le nombre d'enregistrements sans prendre en compte les enregistrements dans lesquels la valeur de la colonne est NULL (non définie). Si vous utilisez un astérisque comme argument et démarrez une requête SELECT COUNT(*) ..., le résultat sera le nombre de tous les enregistrements (lignes) de la table.

Exemple 9. La base de données et la table sont les mêmes que dans les exemples précédents.

Vous souhaitez connaître le nombre de tous les employés qui reçoivent des commissions. Le nombre d'employés dont les valeurs de la colonne Comm ne sont pas NULL sera renvoyé par la requête suivante :

SELECT COUNT(Comm) FROM Personnel

Le résultat sera 11.

Exemple 10. La base de données et la table sont les mêmes que dans les exemples précédents.

Si vous souhaitez connaître le nombre total d'enregistrements dans la table, utilisez une requête avec un astérisque comme argument de la fonction COUNT :

SELECT COUNT(*) FROM Personnel

Le résultat sera 17.

Dans le prochain exercice pour une solution indépendante vous devrez utiliser une sous-requête.

Exemple 11. Nous travaillons avec une seule table - le personnel. Afficher le nombre d'employés dans le service de planification (Plaines).

Agréger des fonctions avec SQL GROUP BY

Voyons maintenant l'utilisation des fonctions d'agrégation avec l'instruction SQL GROUP BY. L'instruction SQL GROUP BY est utilisée pour regrouper les valeurs des résultats par colonnes dans une table de base de données.

Exemple 12. Il existe une base de données du portail publicitaire. Il contient un tableau Annonces contenant des données sur les annonces soumises pour la semaine. La colonne Catégorie contient des données sur les grandes catégories d'annonces (par exemple, Immobilier) et la colonne Pièces contient des données sur les parties plus petites incluses dans les catégories (par exemple, les parties Appartements et Maisons d'été font partie de la catégorie Immobilier). La colonne Unités contient des données sur le nombre d'annonces soumises et la colonne Argent contient des données sur le montant d'argent reçu pour la soumission d'annonces.

CatégoriePartieUnitésArgent
TransportVoitures110 17600
ImmobilierAppartements89 18690
ImmobilierDachas57 11970
TransportMotos131 20960
Matériaux de constructionPlanches68 7140
Génie électriqueTéléviseurs127 8255
Génie électriqueRéfrigérateurs137 8905
Matériaux de constructionRecettes112 11760
LoisirsLivres96 6240
ImmobilierÀ la maison47 9870
LoisirsMusique117 7605
LoisirsJeux41 2665

À l'aide de l'instruction SQL GROUP BY, recherchez le montant gagné en publiant des annonces dans chaque catégorie. Nous écrivons la demande suivante.

Bonjour! Aujourd'hui, nous allons nous familiariser avec les fonctions d'agrégation dans SQL, nous analyserons en détail comment elles fonctionnent avec les données des tables que nous avons créées dans les leçons précédentes.

Concept général

Dans la dernière leçon, nous avons appris à créer des requêtes sur des données. Les fonctions d'agrégation existent pour pouvoir d'une manière ou d'une autre généraliser les données reçues, c'est-à-dire les manipuler comme nous le souhaitons.

Ces fonctions sont exécutées à l'aide de mots-clés inclus dans la requête SELECT, et la manière dont elles sont écrites sera discutée ci-dessous. Pour être clair, voici quelques-unes des fonctionnalités des fonctions d'agrégation dans SQL :

  • Somme des valeurs sélectionnées
  • Trouver la moyenne arithmétique des valeurs
  • Trouver les valeurs minimales et maximales

Exemples de fonctions d'agrégation SQL

Nous examinerons les fonctions les plus couramment utilisées et donnerons quelques exemples.

Fonction SOMME

Cette fonction vous permet de additionner les valeurs de n'importe quel champ lors d'une requête SELECT. Une fonction assez utile, dont la syntaxe est assez simple, comme toutes les autres fonctions d'agrégation de SQL. Pour comprendre, commençons par un exemple :

Obtenez la somme de toutes les commandes du tableau Commandes effectuées en 2016.

Il serait possible d'afficher simplement le montant des commandes, mais il me semble que c'est assez simple. Rappelons la structure de notre tableau :

onummontantdatecnumsnum
1001 128 2016-01-01 9 4
1002 1800 2016-04-10 10 7
1003 348 2017-04-08 2 1
1004 500 2016-06-07 3 3
1005 499 2017-12-04 5 4
1006 320 2016-03-03 5 4
1007 80 2017-09-02 7 1
1008 780 2016-03-07 1 3
1009 560 2017-10-07 3 7
1010 900 2016-01-08 6 8

Le code suivant effectuera la sélection requise :

SELECT SUM (amt) FROM Commandes WHERE date BETWEEN "2016-01-01" et "2016-12-31" ;

En conséquence nous obtenons :

SOMME(montant)
4428

Dans cette requête, nous avons utilisé Fonction SOMME, après quoi vous devez indiquer le champ de sommation entre parenthèses. Ensuite, nous avons spécifié une condition dans WHERE, qui sélectionnait uniquement les lignes de 2016. En fait, cette condition peut être écrite différemment, mais désormais la fonction de somme globale en SQL est plus importante.

Fonction MOYENNE

La fonction suivante calcule la moyenne arithmétique du champ de données, que nous spécifions en paramètre. La syntaxe d'une telle fonction est identique à la fonction de sommation. Passons donc à la tâche la plus simple :

Affichez la valeur moyenne des commandes à partir du tableau Commandes.

Et aussitôt une demande :

SELECT AVG (montant) FROM Commandes ;

En conséquence nous obtenons :

Il convient également de dire que, contrairement aux fonctions précédentes, ces 2 fonctions peuvent fonctionner avec des paramètres de caractères, c'est-à-dire que vous pouvez écrire une requête comme MIN (date)(dans ce cas, la date est symbolique), puis le 01/01/2016 nous sera renvoyé.

Le fait est que ces fonctions disposent d'un mécanisme pour convertir les caractères en code ASCII, qu'elles comparent ensuite.

Un autre point important est que nous pouvons faire quelques calculs simples dans une requête SELECT, comme ceci :

SELECT (MAX (amt) - MIN (amt)) AS "Différence" FROM Commandes ;

Il renverra la réponse suivante :

Évidemment, le nombre de commandes est de 10, mais si du coup vous avez une grande table, alors cette fonction sera très pratique. Pour les vendeurs uniques, DISTINCT doit être utilisé car un vendeur peut traiter plusieurs commandes.

Opérateur GROUP BY

Examinons maintenant 2 opérateurs importants qui aident à étendre les fonctionnalités de nos requêtes en SQL. Le premier d'entre eux est l'opérateur GROUP BY, qui effectue un regroupement par champ, ce qui est parfois nécessaire. Et pour ce groupe, il effectue l'action spécifiée. Par exemple:

Affichez la somme de toutes les commandes pour chaque vendeur séparément.

Autrement dit, nous devons maintenant sélectionner les champs avec le prix de la commande pour chaque vendeur dans le tableau Commandes et les résumer. L'instruction GROUP BY en SQL fera tout cela assez facilement :

SELECT snum, SUM (montant) AS "Somme de toutes les commandes" FROM Commandes GROUP BY snum ;

Et au final on obtient :

snumSomme de toutes les commandes
1 428
3 1280
4 947
7 2360
8 900

Comme vous pouvez le constater, SQL a alloué un groupe à chaque vendeur et calculé la somme de toutes ses commandes.

Opérateur HAVING

Cet opérateur est utilisé en complément du précédent. Ceci est nécessaire pour définir les conditions d'échantillonnage des données lors du regroupement. Si la condition est remplie, alors le groupe est attribué ; sinon, rien ne se passera ; Considérez le code suivant :

SELECT snum, SUM (montant) AS "Somme de toutes les commandes" FROM Commandes GROUPE PAR snum AYANT MAX (amt) > 1000 ;

Ce qui créera un groupe pour le vendeur et calculera le montant des commandes de ce groupe, uniquement si le montant maximum de la commande est supérieur à 1000. Evidemment, il n'existe qu'un seul de ces vendeurs, un groupe lui sera attribué et la somme de tous les commandes seront calculées :

snumSomme de toutes les commandes
7 2360

Il semblerait pourquoi ne pas utiliser la condition WHERE ici, mais SQL est construit de telle manière que dans ce cas, il générera une erreur, et c'est pourquoi SQL a l'opérateur HAVING.

Exemples de fonctions d'agrégation en SQL

1. Écrivez une requête qui calculerait tous les montants des commandes terminées le 1er janvier 2016.

SELECT SUM (amt) FROM Commandes WHERE odate = "2016-01-01" ;

2. Écrivez une requête qui compterait le nombre de valeurs distinctes non NULL pour le champ ville dans la table clients.

SELECT COUNT (DISTINCT city) FROM clients ;

3. Écrivez une requête qui sélectionnerait le plus petit montant pour chaque client.

SELECT cnum, MIN (amt) FROM commandes GROUP BY cnum ;

4. Écrivez une requête qui sélectionnerait les clients dont les noms commencent par la lettre G.

SELECT cname FROM clients WHERE cname LIKE "Y%" ;

5. Écrivez une requête qui sélectionnerait le classement le plus élevé dans chaque ville.

SÉLECTIONNER la ville, MAX (note) DES clients GROUPER PAR ville ;

Conclusion

C'est ici que nous terminerons. Dans cet article, nous avons découvert les fonctions d'agrégation dans SQL. Nous avons examiné les concepts de base et les exemples de base qui pourraient être utiles plus tard.

Si vous avez des questions, posez-les dans les commentaires.

La leçon couvrira le sujet du renommage par SQL d'une colonne (champs) en utilisant le mot de service AS ; Le sujet des fonctions d'agrégation dans SQL est également abordé. Des exemples spécifiques de demandes seront discutés

Les noms de colonnes dans les requêtes peuvent être renommés. Cela rend les résultats plus lisibles.

En SQL, renommer les champs implique d'utiliser Mot-clé AS, qui est utilisé pour renommer les noms de champs dans les jeux de résultats

Syntaxe:

SÉLECTIONNER<имя поля>COMME<псевдоним>DEPUIS...

Regardons un exemple de changement de nom en SQL :

Exemple de base de données « Institut » : Affichez les noms des enseignants et leurs salaires, pour les enseignants dont le salaire est inférieur à 15 000, renommez le champ zarplata en "salaire_faible"


✍Solution :

Renommer les colonnes en SQL est souvent nécessaire lors du calcul des valeurs associées à plusieurs champs tableaux. Regardons un exemple :

Exemple de base de données « Institut » : Depuis la table des enseignants, affichez le champ nom et calculez le montant du salaire et de la prime en nommant le champ "salaire_bonus"


✍Solution :
1 2 SELECT nom, (zarplata+ prime) AS zarplata_premia FROM enseignants ;

SELECT nom, (zarplata+premia) AS zarplata_premia FROM enseignants ;

Résultat:

Fonctions d'agrégation en SQL

Pour obtenir des valeurs totales et évaluer des expressions, des fonctions d'agrégation en SQL sont utilisées :

Toutes les fonctions d'agrégation renvoient une valeur unique.

Les fonctions COUNT, MIN et MAX s'appliquent à tout type de données.

Les fonctions SUM et AVG sont utilisées uniquement pour les champs numériques.
Il existe une différence entre les fonctions COUNT(*) et COUNT() : la seconde ne prend pas en compte les valeurs NULL lors du calcul.

Important: Lorsque vous travaillez avec des fonctions d'agrégation en SQL, un mot de fonction est utilisé COMME


Exemple de base de données « Institut » : Obtenez la valeur du salaire le plus élevé parmi les enseignants, affichez le résultat sous forme "salaire_maximum"


✍Solution :
SELECT MAX (zarplata) AS max_salary FROM enseignants ;

SELECT MAX(zarplata) AS max_salary FROM enseignants ;

Résultats:

Examinons un exemple plus complexe d'utilisation de fonctions d'agrégation dans SQL.


✍Solution :

Clause GROUP BY en SQL

L'opérateur group by dans SQL est généralement utilisé en conjonction avec des fonctions d'agrégation.

Les fonctions d'agrégation sont exécutées sur toutes les lignes de requête résultantes. Si la requête contient une clause GROUP BY, chaque ensemble de lignes spécifié dans la clause GROUP BY constitue un groupe et les fonctions d'agrégation sont exécutées. pour chaque groupe séparément.

Regardons un exemple avec la table des leçons :

Exemple:

Important: Ainsi, en utilisant GROUP BY, toutes les lignes de sortie de requête sont divisées en groupes caractérisés par les mêmes combinaisons de valeurs dans ces colonnes (c'est-à-dire que les fonctions d'agrégation sont exécutées sur chaque groupe séparément).

Il convient de considérer que lors du regroupement selon un champ contenant des valeurs NULL, tous ces enregistrements tomberont dans un seul groupe.

Pour différents types d'imprimantes, déterminez leur coût moyen et leur quantité (c'est-à-dire séparément pour le laser, le jet d'encre et la matrice). Utilisez des fonctions d'agrégation. Le résultat devrait ressembler à ceci :

Avoir une instruction SQL

La clause HAVING dans SQL est nécessaire pour vérifier les valeurs, qui sont obtenus à l'aide de la fonction d'agrégation après regroupement(après avoir utilisé GROUP BY). Un tel chèque ne peut pas être contenu dans une clause WHERE.

Exemple: Magasin informatique DB. Calculez le prix moyen des ordinateurs dotés de la même vitesse de processeur. Effectuez les calculs uniquement pour les groupes dont le prix moyen est inférieur à 30 000.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :