Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL за избор на максимална стойност между времевите марки за включване и изключване плюс 3 секунди

Заявката по-долу избира всички редове, чието състояние не е нула.

За редовете, където състоянието е „Изключено“, той използва подзаявка, за да върне максималното тегло между последното „Включено“ и текущото „Изключено“ + 3 секунди

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL подреждане по проблеми

  2. Проблем с условието WHERE в SQL

  3. Не може да се свърже с MySQL сървър на MySQLCC ГРЕШКА 1043 Лошо ръкостискане

  4. Съставни ключове на MySql и нулеви стойности

  5. Не е намерен подходящ драйвер за jdbc:mysql netbeans, *.jar включва в библиотеката