sql >> Database teknologi >  >> RDS >> Mysql

Få variabel MIN-dato baseret på markør i rækken

Brug vinduesfunktioner:

select t.*,
       coalesce(next_time, time) as imputed_time
from (select t.*,
             sum(context = 'reset') over (partition by user_id) as cnt_reset,
             min(case when context is null then time end) over (partition by userid order by time rows between current row and unbounded following) as next_time
      from t
     ) t
where cnt_reset = 0 or context = 'reset';


  1. Hvorfor vil simple If ELSE Statement ikke virke i mySql

  2. Kan ikke fortsætte et hashset i dvale

  3. SQL SUM-funktion uden gruppering af data

  4. MySQL:Indsæt i flere tabeller i samme forespørgsel med BEGIN&COMMIT