Oracle
 sql >> Base de données >  >> RDS >> Oracle

Réinitialiser la somme lorsque la condition est remplie dans Oracle

Vous pouvez créer un sous-groupe en utilisant la somme conditionnelle :

WITH cte AS (
   SELECT t.*,SUM(CASE WHEN hour=3 THEN 1 ELSE 0 END) OVER(ORDER BY timestamp) grp
   FROM t
)
SELECT cte.*, SUM(Count) OVER(PARTITION BY grp ORDER BY timestamp) AS total
FROM cte