0
votes

calculer la moyenne en ignorant les valeurs 0 dans la colonne

entrée: xxx

sortie: xxx

Nous devons calculer l'AVG pour les deux mois précédents ... mais là-bas est une condition requise tout en calculant la moyenne ............. Nous n'avons pas besoin de considérer la quantité = 0 en calculant la moyenne .....

par exemple : Pendant le mois 3 Idéalement, la moyenne devrait être de 10 + 0/2 = 5 .... mais puisque nous devons ignorer le Qté = 0 ... Donc, pour le mois 3, la moyenne sera 10/1 = 10 ....

Merci d'avance


0 commentaires

4 Réponses :


0
votes

Je pense que c'est une moyenne conditionnelle indowo: xxx

nullif () rendement null pour 0 0 Valeurs - quel avg () ignore ensuite. J'ai enveloppé la moyenne de la fenêtre entière avec coalesce () , puisque vous semblez vouloir 0 lorsqu'il y a null valeurs uniquement. < / p>


0 commentaires

1
votes

de l'étincelle, xxx


3 commentaires

Votre sortie ne correspond pas au mois 6, l'AVG sera de 30 + 40/2 = 35 ... Nous n'avons besoin que de deux mois seulement tout en calculant la moyenne


seulement deux? Je vois.


J'ai modifié la plage entre -2 et -1 qui signifie la moyenne actuelle du mois, O.n. Le mois 6 est calculé par la valeur du mois -2 (4) et du mois -1 (5).



4
votes

en SQL, vous pouvez utiliser les fonctions de fenêtre avec un spécificateur de cadre de fenêtre:

select t.*,
       coalesce(avg(nullif(qty, 0)) over (partition by item, loc
                                          order by month
                                          rows between 2 preceding and 1 preceding
                                         ),
                0) as qty_avg
from t;


0 commentaires

1
votes

Il peut être fait en utilisant dans l'étincelle en utilisant Lag fonction et FenêtreFrame < / a> xxx

sortie: xxx


0 commentaires