sql >> Database >  >> RDS >> Mysql

MySQL om de maximale waarde te selecteren tussen aan en uit tijdstempels plus 3 seconden

De onderstaande zoekopdracht selecteert alle rijen waarvan de status niet null is.

Voor de rijen waar de status 'Uit' is, gebruikt het een subquery om het maximale gewicht tussen de meest recente 'Aan' en de huidige 'Uit' + 3 seconden te retourneren

select t.TimeStr, t.Status,
  case
    when status = 'Off'
    then (select max(cast(Weight as signed)) from tempbatch t2 
          where t2.TimeStr between 
            (select max(TimeStr) 
                 from tempbatch t3 
                 where status = 'On' and t3.TimeStr < t.TimeStr)
          and date_add(t.TimeStr, interval 3 second)
    )
    else Weight
  end as Weight
from tempbatch t
where t.Status is not null
order by TimeStr

http://sqlfiddle.com/#!9/f27fb/6



  1. dbsaint - Formulier ophalen EXCEL

  2. Converteer tijd naar seconden in PostgreSQL

  3. Filter de uitvoer van een query met een rij uit een andere tabel

  4. Hoe de LTRIM()-functie werkt in MySQL