有没有会MySQL的麻烦帮忙看一下
mysql5.7.21,没办法用lag()函数
数据表a中有号码,通话日期,想要查询同一手机号两相邻两个通话日期相隔时间在5天及以上的数据,怎么写语句啊
如果排序没问题的话 排好序,自连接一下,然后计算
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;
向上窗口函数,取出字段列名所在的列,向上N行的数据,作为独立的列,该函数可代替表的自联接,且效率更高
LAG (value_expr [, offset ],[, defaultvalue] ) OVER ([ PARTITION BY expr_list ][ ORDER BY order_list [ frame_clause ]])
-- field 对其执行函数的目标列或表达式
-- offset 往上查找的offset行的数据 默认1,偏移量为 0 表示当前行
-- defaultvalue: 没有符合条件的默认值