J'ai donc 3 colonnes différentes (panier 1, 2 et 3). Parfois ces colonnes ont toutes les informations et parfois une ou deux d'entre elles sont nulles. J'ai une autre colonne dans laquelle je vais faire la moyenne de ces valeurs et enregistrer.Colonnes moyennes MS-SQL avec NULL
Existe-t-il un moyen élégant/facile d'obtenir la moyenne de ces trois colonnes même si l'une d'entre elles est nulle? Ou dois-je avoir un chèque spécial pour chacun étant nul?
données Exemple (~~ est nul)
- B1 - B2 - B3 - Avg
------------------------------
- 10 - 20 - 30 - 20
- 10 - ~~ - 30 - 20
- ~~ - 20 - ~~ - 20
Comment pourrais-je écrire le T-SQL pour mettre à jour ma table temp?
UPDATE @MyTable
SET Avg = ???
Réponse: Merci à Aaronaught pour la méthode je. Je vais mettre mon code ici juste au cas où quelqu'un d'autre aurait la même chose.
WITH AverageView AS
(
SELECT Results_Key AS xxx_Results_Key,
AVG(AverageValue) AS xxx_Results_Average
FROM @MyResults
UNPIVOT (AverageValue FOR B IN (Results_Basket_1_Price, Results_Basket_2_Price, Results_Basket_3_Price)) AS UnpivotTable
GROUP BY Results_Key
)
UPDATE @MyResults
SET Results_Baskets_Average_Price = xxx_Results_Average
FROM AverageView
WHERE Results_Key = xxx_Results_Key;
Quels SGBDR utilisez-vous? – Quassnoi