sql >> Databasteknik >  >> RDS >> Sqlserver

gruppering på statusändring

Du kan göra detta med metoden olika-av-radnummer. Skillnaden mellan row_number() -- med speciella argument -- identifierar grupper. Resten är bara aggregering:

select status, min(time), max(time)
from (select t.*,
             (row_number() over (order by time) -
              row_number() over (partition by status order by time)
             ) as grp
      from mytable t
     ) t
group by status, grp;



  1. MySQL SELECT DISTINCT rader (inte kolumner) för att filtrera $_POST för dubbletter

  2. Snabb mySQL leaderboard med spelarrankning (och omgivande spelare)

  3. mysql_fetch_array() förväntar sig att parameter 1 är resurs, sträng given

  4. Psycopg2, Postgresql, Python:Snabbaste sättet att bulkinfoga