首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算平均工单响应时间

计算平均工单响应时间
EN

Stack Overflow用户
提问于 2015-11-05 21:07:14
回答 2查看 594关注 0票数 1

我想要得到一个部门的平均响应时间。

下面是我的数据库模式。门票:

代码语言:javascript
复制
| ID   | Subject   | Department  | AdminId  | ClientId  | created_at          |
| 1    | Test1     | 1           | 0        | 1         | 2015-01-01 10:10:10 |
| 2    | Test2     | 1           | 0        | 2         | 2015-01-01 20:20:20 |

TicketReplies:
  --AuthorType:
    ----1 => Admin
    ----2 => Client



| ID   | TicketId   | Body        | AuthorId  | AuthorType | created_at          |
| 1    | 1          | Test Body?  | 1         | 2          | 2015-01-01 10:10:10 |
| 2    | 1          | Yes!        | 1         | 1          | 2015-01-01 10:48:16 |
| 3    | 2          | Are you Ok? | 2         | 2          | 2015-01-01 20:20:20 |
| 4    | 2          | Yes!        | 1         | 1          | 2015-01-02 08:15:18 |
EN

回答 2

Stack Overflow用户

发布于 2015-11-05 21:13:07

平均响应时间是最大时间减去最小时间除以响应总数减1。

要获取以秒为单位的值,请执行以下操作:

代码语言:javascript
复制
select t.department,
       ( (to_seconds(max(created_at)) - to_seconds(min(created_at)) ) /
         nullif(count(*) - 1, 0)
       )
from ticketreplies tr join
     tickets t
     on tr.ticketid = t.id
group by t.department;

这在MySQL 5.5+中有效。在早期版本中,您可以通过转换为Unix时间戳来执行相同的操作。

票数 0
EN

Stack Overflow用户

发布于 2015-11-05 23:29:14

代码语言:javascript
复制
SELECT Department, AVG(response_time) as avg_response  -- in seconds
FROM 
    (
    SELECT T.Department, 
           TR.TicketId,
           TIMESTAMPDIFF(SECOND, MIN(TR.created_at), MAX(TR.created_at)) as response_time
    FROM Tickets T
    JOIN TicketReplies TR
      ON T.id = TR.TicketId   
    GROUP BY T.Department, TR.TicketId
    ) as T
GROUP BY Department

输出

代码语言:javascript
复制
| Department | avg_response |
|------------|--------------|
|          1 |        22592 |
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33545395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档