Le logiciel de gestion de base de données open source MySQL utilise le Structured Query Language standard de l'industrie pour les transactions de données et la maintenance de base de données . Comme avec d'autres dialectes SQL , MySQL offre un ensemble de fonctions d'agrégation qui effectuent des calculs statistiques sur des groupes de données. Vous pouvez mélanger ces fonctions avec les mathématiques standard dans vos programmes , mais seulement sous certaines conditions. Fonctions d'agrégation
Bien que la plupart des fonctions mathématiques dans SQL font des calculs un enregistrement à la fois , des fonctions d'agrégation retourner des résultats pour tous les enregistrements dans un ensemble ou d'un groupe d'enregistrements dans un ensemble de données . Par exemple, le "AVG ()" fonction prend la moyenne de la zone spécifiée pour tous les enregistrements retournés par une requête "SELECT" , comme le code SQL suivant illustre :
SELECT AVG ( total_sales ) FROM clients WHERE état = ' NY' ;
Cette déclaration affiche les ventes totales moyennes pour tous les clients dans l'État de New York. Il affiche un numéro unique. Vous pouvez aussi casser moyennes par État, comme dans cette déclaration:
état SELECT AVG ( total_sales ) du groupe de clients en état ;
affiche une ligne par l'Etat , ce qui donne la moyenne des ventes chiffre pour tous les clients dans l'état.
standard Math
les fonctions mathématiques standards de MySQL incluent l'addition , la soustraction, la multiplication et la division , la trigonométrie , exponentielles et plusieurs autres. Pour les champs d'une table, MySQL effectue le calcul sur chaque enregistrement. Par exemple, pour afficher le total des ventes pour l' enregistrement de la commande , vous pouvez multiplier le prix unitaire par la quantité commandée que cela montre l'instruction SQL : SELECT
unit_price , qty_ordered , unit_price * quantité commandée auprès de commandes ;
L'instruction SELECT suivante ne fonctionne pas, cependant :
SELECT * unit_price qty_ordered , AVG ( unit_price ) des ordres ;
La déclaration vise à mélanger les fonctions d'agrégation et les mathématiques standard dans une inapproprié voie . L' AVG () retourne une valeur unique , bien que le unit_price * calcul qty_ordered peut renvoyer des milliers de valeurs. Vous ne pouvez pas avoir les deux en une seule déclaration.
Mélangeant des granulats
Vous pouvez utiliser plusieurs fonctions d'agrégat dans une même instruction SQL. Cela fonctionne parce que chaque agrégat renvoie une valeur unique . Par exemple, si vous voulez que les prix moyens , minimum et maximum dans un tableau de commandes , vous pouvez utiliser la déclaration suivante:
SELECT AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) des ordres ;
mélangeant des granulats avec des champs et fonctions standard
vous mélangez agrégats avec des champs standards en regroupant les dossiers ensemble, comme le montre la déclaration suivante:
SELECT product_number , AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) du groupe des commandes par product_number ;
affiche une ligne par numéro de produit, montrant le produit avec le prix moyen , minimum et maximum . Vous pouvez mélanger les fonctions standard et globale , tant que vous regroupez des enregistrements ensemble, comme dans le code SQL suivante : SELECT
product_number , cost_per_m /1000 , AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) d' commandes GROUP BY product_number ;
cette déclaration calcule un coût unique élément basé sur un «coût pour mille », ou le coût par 1000 unités , et affiche ce chiffre avec le prix moyen , minimum et maximum . Vous pouvez mélanger les fonctions standard et global si les fonctions standards s'appliquent aux agrégats , comme le montre cet exemple :
SELECT AVG ( unit_price ) , COUNT ( unit_price ) , AVG ( unit_price ) * COUNT ( unit_price ) des ordres ; Photos
ici, l'instruction SELECT multiplie les résultats de l' AVG () et count () fonctions ensemble.