1、时间减法函数
TIMESTAMPDIFF(minute,时间1,时间2)
minute不用引号
时间2-时间1用分钟表示
2、用rn排序之后,只有对应两个数值才有数值
用SUM和max一样
select exam_id,duration,release_time from( select a.exam_id,uid, start_time,submit_time, TIMESTAMPDIFF(second,start_time,submit_time) minu1, Rank() over(PARTITION by exam_id order by timestampdiff(second,start_time,submit_time) desc ) rn, Rank() over(PARTITION by exam_id order by timestampdiff(second,start_time,submit_time) asc ) rn2, 30*duration dur1, duration, RELEASE_time from examination_info a left join exam_record b on a.exam_id=b.exam_id where submit_time is not null ) t group by exam_id HAVING max((case when rn=2 then minu1 end))-MAX((case when rn2=2 then minu1 end))-MAX(dur1)>0 order by exam_id desc中间过程
select exam_id,duration,release_time,(case when rn=2 then minu1 end),(case when rn2=2 then minu1 end),dur1 from( select a.exam_id,uid, start_time,submit_time, TIMESTAMPDIFF(second,start_time,submit_time) minu1, Rank() over(PARTITION by exam_id order by timestampdiff(second,start_time,submit_time) desc ) rn, Rank() over(PARTITION by exam_id order by timestampdiff(second,start_time,submit_time) asc ) rn2, 30*duration dur1, duration, RELEASE_time from examination_info a left join exam_record b on a.exam_id=b.exam_id where submit_time is not null ) t
3、对于以上,
可以用两个分别max,然后想减
或者
SUM(rn=2 then 时间差 when rn2=2 then -时间差 end) 作为合并
4、using (uid) 相当于on条件