1.找出某个机柜某个仓门上报时间差是否高于正常值
SELECT cab_serial, b.id, b.curr, b.pre, ( b.curr - b.pre ) AS diff FROM ( SELECT cab_serial, a.`id` AS id, a.created_at AS curr, @a.created_at AS pre, @a.created_at := a.created_at FROM 表名 a,( SELECT @a.created_at := 0 ) r WHERE cab_serial = '机柜编号' AND door_num = 1 )b HAVING diff > 180
2.查找整个表中每个用户的相册创建时间差值 (这段代码测试数据后与实际结果不符)
SELECT r1.user_id, r1.curr, r2.pre, ( r1.curr - r2.pre ) AS diff FROM ( SELECT id, ( @rownum := @rownum + 1 ) AS rownum, info.user_id, info.created_at curr FROM 表名 info, ( SELECT @rownum := 0 ) r WHERE info.created_at IS NOT NULL ORDER BY info.user_id ) r1 LEFT JOIN ( SELECT id, ( @INDEX := @INDEX + 1 ) AS rownum, info.user_id, info.created_at pre FROM 表名 info, ( SELECT @INDEX := 0 ) r WHERE info.created_at IS NOT NULL ORDER BY info.user_id ) r2 ON r1.user_id = r2.user_id AND r1.rownum = r2.rownum - 1 ORDER BY r1.rownum DESC
发表回复