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
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
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
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!