觉得你的结构不是很合理!要实现你的需求,我的想法是:
1. 创建一个临时表,将数据重新组织录入
CREATE TEMPORARY TABLE test111(id int, flag varchar(16), val int, dt datetime);
set @t1:=0;
insert into test111(id, flag, val, dt) select if(flag='开机', @t1:=@t1+1,
 @t1), flag, val, dt from 原表名 order by;
结果:每次开机到关机的记录被标志为id相同2. 查询每次开机关机之间最大值
select max(val) from test111 group by id;