mysql计算相邻两行时间或数字差值
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
0 评论
评论
登录后即可评论 去登录