Maison > base de données > tutoriel mysql > Comment calculer la moyenne de plusieurs colonnes dans une table de base de données ?

Comment calculer la moyenne de plusieurs colonnes dans une table de base de données ?

DDD
Libérer: 2024-12-31 08:39:10
original
868 Les gens l'ont consulté

How to Calculate the Average of Multiple Columns in a Database Table?

Calcul de la moyenne de plusieurs colonnes de table

Dans le contexte des opérations sur les tables de base de données, il est souvent nécessaire de calculer les valeurs moyennes sur plusieurs colonnes. Cela devient particulièrement utile lorsque nous devons résumer ou analyser des données. Considérons un exemple spécifique pour démontrer le processus.

Scénario :

Nous avons un tableau nommé "Demande" avec des colonnes représentant les valeurs R1, R2, R3, R4, et R5. Nous souhaitons déterminer la moyenne de ces valeurs pour chaque enregistrement du tableau.

Approche initiale :

Pour y parvenir, vous avez initialement tenté la requête suivante :

Select Req_ID, Avg(R1+R2+R3+R4+R5) as Average
from Request
Group by Req_ID
Copier après la connexion

Cependant, cette requête ne fournit pas le résultat escompté. Il calcule la somme des valeurs, pas la moyenne.

Cause :

Lors de l'utilisation de la fonction d'agrégation AVG, il est important de s'assurer que l'argument fourni est une expression qui correspond à une seule valeur numérique. Dans ce cas, vous additionnez les valeurs de plusieurs colonnes, ce qui donne une somme.

Solution :

Il existe deux méthodes que vous pouvez utiliser pour calculer la moyenne. correctement :

1. Utilisation d'une sous-requête (syntaxe 2008) :

SELECT *,
       (SELECT AVG(c)
        FROM   (VALUES(R1),
                      (R2),
                      (R3),
                      (R4),
                      (R5)) T (c)) AS [Average]
FROM   Request
Copier après la connexion

Dans cette approche, une sous-requête est utilisée pour calculer la moyenne. La sous-requête sélectionne les valeurs de chaque colonne et les traite comme des lignes distinctes. Ensuite, la fonction d'agrégation AVG est appliquée pour calculer la moyenne.

2. Utilisation d'une UNION dans la sous-requête (syntaxe 2005) :

SELECT *,
       (SELECT AVG(c)
        FROM   (SELECT R1
                UNION ALL
                SELECT R2
                UNION ALL
                SELECT R3
                UNION ALL
                SELECT R4
                UNION ALL
                SELECT R5) T (c)) AS [Average]
FROM   Request
Copier après la connexion

Cette méthode utilise une UNION pour combiner toutes les valeurs des différentes colonnes en une seule colonne. La fonction d'agrégation AVG est ensuite appliquée à la colonne combinée pour calculer la moyenne.

Résultat :

Les deux approches fourniront les valeurs moyennes correctes pour chaque enregistrement de la demande. tableau. En suivant l'une de ces solutions, vous pouvez calculer avec précision la moyenne de plusieurs colonnes du tableau et obtenir le résultat souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal