sql >> Databáze >  >> RDS >> Mysql

MySQL pro výběr maximální hodnoty mezi zapnutými a vypnutými časovými razítky plus 3 sekundy

Dotaz níže vybere všechny řádky, kde stav není null.

Pro řádky se stavem „Vypnuto“ používá dílčí dotaz k vrácení maximální váhy mezi nejnovějším „Zapnuto“ a aktuálním „Vypnuto“ + 3 sekundy

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. Anonymizace nepřímých identifikátorů pro snížení rizika Re-ID

  2. potíže s mysql s information_schema.tables

  3. Vložte XML ze souboru v PostgreSQL

  4. Jak používat parametry v klauzuli „kde hodnota v...“?