MySQL中两行之间的时间差

MySQL中两行之间的时间差,mysql,sql,mysql-5.5,Mysql,Sql,Mysql 5.5,我有下表 事务ID 用户ID TransactionDateTime 1. 1. '2021-04-22 11:00:00' 2. 2. '2021-04-22 11:00:11' 3. 1. '2021-04-22 11:00:22' 4. 3. '2021-04-22 11:00:33' 5. 3. '2021-04-22 11:00:44' 6. 1. '2021-04-22 11:00:55' 选择*, 秒到秒, TransactionDateTime, 按用户ID划分的分区上的LAGT

我有下表

事务ID 用户ID TransactionDateTime 1. 1. '2021-04-22 11:00:00' 2. 2. '2021-04-22 11:00:11' 3. 1. '2021-04-22 11:00:22' 4. 3. '2021-04-22 11:00:33' 5. 3. '2021-04-22 11:00:44' 6. 1. '2021-04-22 11:00:55' 选择*, 秒到秒, TransactionDateTime, 按用户ID划分的分区上的LAGTransactionDateTime 按TransactionDateTime时差排序 从桌子上 按TransactionDateTime订购 但是我使用的是MySQL 5.5版本,不支持按函数分区。也许还有别的办法瓦鲁赞·斯捷潘扬

选择t1.*, 秒到秒时间差,t2.TransactionDateTime,t1.TransactionDateTime时差 来自表t1 t1.UserID=t2.UserID上的左联接表t2 t1.TransactionDateTime>t2.TransactionDateTime 如果不存在,请选择NULL 来自表t3 其中t1.UserID=t3.UserID t1.TransactionDateTime>t3.TransactionDateTime t3.TransactionDateTime>t2.TransactionDateTime 按t1.TransactionID订购;
我建议使用一个相关子查询来获取MySQL旧版本中的上一个日期/时间:

select t.*,
       timediff(TransactionDateTime, prev_TransactionDateTime) as timedifference
from (select t.*,
             (select max(t2.TransactionDateTime)
              from t t2
              where t2.UserId = t.UserId and
                    t2.TransactionDateTime < t.TransactionDateTime
             ) as prev_TransactionDateTime
      from t
     ) t;

看看到目前为止你都试了些什么?你卡在哪里了?谢谢,但我使用的是MySQL 5.5版本,不支持按函数分区。“也许还有别的办法?”VaruzhanStepanyan更新道。注:如果版本不是实际版本,请务必报告。