mysql查询同一列中相邻日期的间隔

有没有会MySQL的麻烦帮忙看一下
mysql5.7.21,没办法用lag()函数
数据表a中有号码,通话日期,想要查询同一手机号两相邻两个通话日期相隔时间在5天及以上的数据,怎么写语句啊

img

如果排序没问题的话 排好序,自连接一下,然后计算

img

SELECT
  t1.age,
   (SELECT t2.age FROM student t2 WHERE t2.id < t1.id ORDER BY t2.id DESC LIMIT 1) AS lastage,
     CONCAT(t1.age,'-',(SELECT t2.age FROM student t2 WHERE t2.id < t1.id ORDER BY t2.id DESC LIMIT 1)),
     t1.age-  (SELECT t2.age FROM student t2 WHERE t2.id < t1.id ORDER BY t2.id DESC LIMIT 1)
FROM   student t1;

  • 这篇博客: MySql窗口函数详解-超级细中的 LAG() 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 向上窗口函数,取出字段列名所在的列,向上N行的数据,作为独立的列,该函数可代替表的自联接,且效率更高

    LAG (value_expr [, offset ],[, defaultvalue] ) OVER ([ PARTITION BY expr_list ][ ORDER BY  order_list [ frame_clause ]])
    -- field 对其执行函数的目标列或表达式
    -- offset 往上查找的offset行的数据 默认1,偏移量为 0 表示当前行
    -- defaultvalue: 没有符合条件的默认值