sql >> Databasteknik >  >> RDS >> Mysql

Få variabel MIN-datum baserat på markör i rad

Använd fönsterfunktioner:

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. Hur man subtraherar privilegier i MySQL

  2. SQL Server Latches – Andra Latches att veta om

  3. Välja rader från en tabell som har samma värde för ett fält

  4. Sammanfoga flera resultatrader i en kolumn till en, gruppera efter en annan kolumn