sql >> Databasteknik >  >> RDS >> Mysql

MySQL för att välja maxvärde mellan på och av tidsstämplar plus 3 sekunder

Frågan nedan väljer alla rader där statusen inte är null.

För de rader där statusen är 'Av' använder den en underfråga för att returnera den maximala vikten mellan den senaste 'På' och den nuvarande 'Av' + 3 sekunder

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. konvertera sträng till datum php

  2. Hur man får veckovis rekord i mysql från start- till slutdatum

  3. io.vertx.mysqlclient.MySQLPool.query ().execute körs aldrig riktigt och returnerar ingenting

  4. Prestanda när du använder batchläge för Qt / MySQL