Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 复杂的Sql查询逻辑_Mysql_Sql_Database - Fatal编程技术网

Mysql 复杂的Sql查询逻辑

Mysql 复杂的Sql查询逻辑,mysql,sql,database,Mysql,Sql,Database,我在mysql中有一个问题需要解决。我正在使用MYSQL工具。我处理呼叫中心的信息日志。假设我有一个对应于邮件回复的表。它的列是“id”、“responder”、“timestamp”。响应者可以有两个值:-“代理”,“用户”。响应者=“代理”的条目是我们的代理答复的条目,响应者=“用户”的条目是用户答复的条目 假设我们有一系列这样的消息:-用户、代理、用户、用户、代理、用户、用户、代理、用户、代理。 我想得到这张票的平均响应时间。理想的方法是通过“用户”获取第一条消息的时间戳,然后通过“代理”

我在mysql中有一个问题需要解决。我正在使用MYSQL工具。我处理呼叫中心的信息日志。假设我有一个对应于邮件回复的表。它的列是“id”、“responder”、“timestamp”。响应者可以有两个值:-“代理”,“用户”。响应者=“代理”的条目是我们的代理答复的条目,响应者=“用户”的条目是用户答复的条目

假设我们有一系列这样的消息:-用户、代理、用户、用户、代理、用户、用户、代理、用户、代理。

我想得到这张票的平均响应时间。理想的方法是通过“用户”获取第一条消息的时间戳,然后通过“代理”获取第一条消息的时间戳,并减去该时间戳以获取响应时间。下一步获取“用户”的第一个条目和“代理”的下一个第一个条目,并获取它们的时差。也就是说,如果两个连续的回复是来自“user”,那么我必须接受“user”的第一个回复,并获取“agent”的下一个第一个条目,并获取它们的时差。我不知道如何获得用户第一次回复和代理下一次第一次回复的时间差

有什么建议吗???

你可以在下面试试 1.创建一个临时表,比如t1,并使用selectqueryformessages将数据插入其中,其中responder=user具有最小时间戳,并按消息的id分组。 2.创建另一个临时表t2,使用selectqueryformessages将数据插入其中,其中responder=agent具有最大时间戳,并按消息id分组
3.现在使用join和date减法获取消息(票据)的响应时间。

每条记录是否也有时间戳?这听起来像是一个缺口和孤岛问题。我认为您的表缺少(至少)一个字段,这将使您能够正确地关注对话。我的意思是,您的表似乎存储了多个用户和多个代理之间的对话(此外,一个代理可能与多个用户进行活动对话)。使用示例数据和期望的结果,这将更加清晰。