-1
votes

Comment trouver la moyenne d'une colonne qui a des valeurs de chaîne et de numériques?

Je veux calculer la moyenne de deux colonnes, mais chaque colonne a des valeurs de chaîne entre et crée une erreur lorsque la fonction AVG est appliquée.Comment puis-je résoudre ce problème?


3 commentaires

S'il vous plaît partager votre code


Vous pouvez ajouter un où indiquant la valeur de la colonne doit être numérique


S'il vous plaît Modifier Votre question à inclure un exemple de reproductible minimal contenant: quelques données d'échantillon; votre sortie attendue pour ces données d'échantillon; une description anglaise de la façon dont vous avez eu cette sortie attendue (s'il n'est pas évident); votre tentative de la solution; et les messages d'erreur qu'il a générés.


3 Réponses :


0
votes

Ceci peut fonctionner

Select (cast(col1 as float) + cast(col2 as float)) / 2 as average_between_col1_and_col2, 
        avg(cast(col2 as float)) as avg_col_2, 
        avg(cast(col1 as float)) as avg_col_1
from table tbl


0 commentaires

0
votes

Les échantillons de données aideraient; Je ne sais pas ce que vous vouliez dire en disant que vous souhaitez "calculer la moyenne de deux colonnes" - est-ce (colonne_1 + colonne_2) / 2 ou avg (colonne_1) et avg (colonne_2) ?

Quoi qu'il en soit, le principe est identique - Vérifiez si la colonne contient un numéro et effectuez le calcul. Sinon, ne rien faire. Par exemple: xxx


0 commentaires

0
votes

Si vous voulez la moyenne globale dans chaque colonne, alors: xxx

avg () ignore null valeurs.

Si vous souhaitez la moyenne d'une ligne, alors avg () n'est pas approprié (il s'agit d'une fonction d'agrégation). Dans ce cas: xxx


0 commentaires