Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Summe zurücksetzen, wenn Bedingung in Oracle erfüllt ist

Sie können eine Untergruppe mit einer bedingten Summe erstellen:

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