Je souhaite calculer des poids dans des groupes. Dites que j'ai une table comme celle-ci avec une variable de groupe et je veux calculer la colonne de poids qui est la valeur du produit sur la somme de toutes les valeurs de produits dans ce groupe. Comment cela peut-il être fait?Calcul Transact SQL dans le groupe
Exemple de données:
Je veux aller de ce tableau:
à cette table:
Cela signifie que la colonne de poids n'existe pas. L'objectif est de créer une nouvelle table contenant toutes les colonnes d'origine et une nouvelle colonne appelée weight.
Exemple de calcul du poids: Pour le produit de la ligne 5 du groupe B x le poids est calculé en poids = 10/40.
Que se passe-t-il si, pour certains groupes, la somme (valeur) est égale à zéro? Comment pouvons-nous nous protéger contre cela? par exemple. les filtrer dans le calcul? – user7066213
Vous pouvez utiliser une instruction CASE WHEN pour vérifier si la somme du groupe est 0 avant d'effectuer la division. J'ai mis à jour l'instruction CREATE VIEW dans ma réponse pour fournir un exemple à ce sujet. J'ai choisi de retourner 0 comme [Poids] lorsque la somme pour le groupe est 0, mais vous pouvez changer cela en fonction de vos besoins. – dybzon