sql >> Databasteknik >  >> RDS >> Oracle

Återställ summan när villkoret är uppfyllt i Oracle

Du kan skapa en undergrupp med villkorlig summa:

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



  1. PostgreSQL Performance - SELECT vs lagrad funktion

  2. Varför kräver en rekursiv CTE i Transact-SQL en UNION ALL och inte en UNION?

  3. MySql Infoga om det inte finns två kolumnpar annars uppdatera

  4. Returvärdet för oci_parse