J'ai fait le tour et trouvé un certain nombre d'exemples différents, dont aucun ne semblait fonctionner. Le plus proche est over() mais il a échoué en raison d'une erreur de syntaxe.Calculer les ratios de sous-sommes dans la somme totale
Envisagez la requête suivante.
select Id,
count(*) as Count,
sum(Amount) as Sum
from MyTable
group by Id
Le résultat est une liste de Id s avec le nombre d'occurrences et les valeurs sont élevées. Cela fonctionne très bien. Cependant, j'aimerais aussi montrer à quel point chaque somme est importante dans le total général. J'ai essayé ce qui suit.
select Id,
count(*) as Count,
sum(Amount) as Sum,
sum(Amount)/sum(Amount) over() as Ratio
from MyTable
group by Id
Il échoue et je ne suis pas sûr de savoir comment y remédier (surtout parce que le sur thingy était plus d'une estimation que la connaissance stable).
Bonne suggestion. Cependant, dans mon cas particulier, la sous-requête serait trop lourde (jointures, wheres, sous-sous-sélections, etc.). J'espérais une solution paresseuse, hehe. Peut-il être fait en utilisant ce * sur * thingy? –