Totaux cumulés

Total cumulé

SELECT SUM(SUM(a)) OVER (ORDER BY b ROWS UNBOUNDED PRECEDING) 
FROM ...
GROUP BY b ...

SUM(COUNT(a)) est également valide.

SELECT d.sem, SUM(COUNT(*)) OVER (ORDER BY d.sem ROWS UNBOUNDED PRECEDING)
FROM ventes v, date d
WHERE v.dat=d.dat
GROUP BY d.sem;

Notons qu'il est possible de "fenêtrer" les données, c'est à dire de définir une plage de valeurs bornée, en spécifiant une fenêtre de valeurs à l'aide de la clause "RANGE min max" à la place de "ROWS UNBOUNDED PRECEDING".

Le fenêtrage de données est particulièrement utile dans le cas de données temporelles (cf. Oracle 9i : Notions fondamentales).

AccueilExtensions Oracle > Totaux cumulés< PrécédentSuivant >