复杂的Sql查询逻辑

时间:2016-12-17 10:48:05

标签: mysql sql database

我有一个问题需要在mysql中解决。我正在使用MYSQL工具。我处理呼叫中心消息日志。假设我有一个与Message_Replies对应的表。它的列是'id','responder','timestamp'。响应者可以有两个值: - 'agent','user'。带有responder ='agent'的条目是我们的代理回复的条目,而responder ='user'的条目是用户回复的条目。

Say we have a sequences of messages like this:- User, Agent, User, User, Agent, User, User, Agent, User, Agent.

我想获得此票的平均响应时间。理想的方法是通过'user'获取第一个消息时间戳,然后通过'agent'获取第一个消息时间戳nd减去此时间戳以获得响应时间。接下来首先输入'用户'和下一个第一个'代理'条目并获得他们的时间差异。即如果两个继续回复来自'用户'那么我必须通过'用户'进行第一次回复并获得'代理'的下一个第一个回复,并获得他们的时差。我没有得到如何获得用户的第一次回复和代理的下一次回复的时间差异。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

你可以在下面试试 1.创建一个临时表,让我们说t1并使用select查询将数据插入到其中,其中responder = user具有最小时间戳并按消息id分组。 2.创建另一个临时表t2,使用select查询为其中的数据插入数据,其中responder =具有最大时间戳的代理和按消息的id分组 3.现在使用连接和日期减法来获取消息(票证)的响应时间