नीचे दी गई क्वेरी उन सभी पंक्तियों का चयन करती है जहां स्थिति शून्य नहीं है।
उन पंक्तियों के लिए जहां स्थिति 'बंद' है, यह सबसे हाल के 'चालू' और वर्तमान 'बंद' + 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