Mysql 根据时差从子查询的下一行中选择字段
我试图从下一行抓取一个字段,然后计算Mysql中当前行字段和下一行字段之间的时差。但它总是给我60小时的时间差。既然这已经超过一天了,那就错了 我的问题是这样的:Mysql 根据时差从子查询的下一行中选择字段,mysql,sql,Mysql,Sql,我试图从下一行抓取一个字段,然后计算Mysql中当前行字段和下一行字段之间的时差。但它总是给我60小时的时间差。既然这已经超过一天了,那就错了 我的问题是这样的: select DATE_FORMAT( last_call, '%d' ) AS 'day', COUNT(call_id) as id, SEC_TO_TIME(SUM((select timestampdiff(second, calls.last_call, c2.last_call) from call
select DATE_FORMAT( last_call, '%d' ) AS 'day',
COUNT(call_id) as id,
SEC_TO_TIME(SUM((select timestampdiff(second, calls.last_call, c2.last_call)
from calls c2
where c2.calling_agent = calls.calling_agent and
c2.last_call > calls.last_call and
timestampdiff(second, calls.last_call, c2.last_call) > 600
order by c2.last_call
limit 1
))) brakes
来自电话
其中调用_代理=9
最后一次通话>日期(现在(),间隔12个月)
按提取分组(上次调用的日期)您可以使用相关子查询获取下一个值:
select c.*,
(select c2.last_call
from calls c2
where c2.calling_agent = c.calling_agent and
c2.last_call > c.last_call
order by c2.last_call
limit 1
) next_last_call
from calls c;
如果愿意,可以使用timestampdiff()
获取下一个和当前之间的差异:
select c.*,
(select timestampdiff(second, c.last_call, c2.last_call)
from calls c2
where c2.calling_agent = c.calling_agent and
c2.last_call > c.last_call
order by c2.last_call
limit 1
) diff_in_secs
from calls c;
然后应用您想要的任何逻辑(可能将其用作子查询)。可能有助于定义“下一行”。我不知道如何将它添加到我的查询中,这样就可以得到每天每行之间的时间差?但是只有那些大于10分钟的?你能帮忙吗???