如何将此 postgresql 滞后语句移植到 mysql?

how to port this postgresql lag statement to mysql?

想象一下 table 刚刚填充了 ID 并创建了时间戳,我如何将其转换为 MySQL?:

SELECT created AS col_a , LAG (created) OVER ( ORDER by created ) AS col_b
FROM tester

您可以使用相关子查询:

SELECT t1.created AS col_a,
       (SELECT created
        FROM tester AS t2
        WHERE t2.created < t1.created
        ORDER BY created DESC LIMIT 1) AS col_b
FROM tester AS t1

或者,使用变量:

   SELECT t1.created AS col_a, t2.created AS col_b
   FROM (
     SELECT created, @rn1 := @rn1 + 1 AS rn
     FROM tester
     CROSS JOIN (SELECT @rn1 := 0) AS var
     ORDER BY created) AS t1
   LEFT JOIN (
     SELECT created, @rn2 := @rn2 + 1 AS rn
     FROM tester
     CROSS JOIN (SELECT @rn2 := 0) AS var
     ORDER BY created
   ) AS t2 ON t1.rn = t2.rn + 1