【问题标题】:SQL Service Level QuerySQL 服务级别查询
【发布时间】:2016-03-01 01:59:32
【问题描述】:

我正在自学 SQL,遇到了这个服务级别问题,我被难住了。我希望得到一些帮助。

给我一​​个包含三个字段的表格。

TicketNumber (Number) ex. 53055 
CreatedAt (timestamp field) ex 2015-09-16 12:47
Sender (User or Agent) ex User

目标是计算服务水平完成度。工单由用户创建并给出编号,代理必须在 6 小时内给出响应。

使用公式:

n_agents_reply_back_to_user_within_6hrs / n_contacts_from_user

现在我明白了这个公式中的分母很简单

Select COUNT(Sender)
From Service_Table
Where Sender Like 'User'

分子给我带来了很多问题,我希望有人能帮我解决。我知道我需要识别具有相同票号的行,确定用户发送票的时间,并确定代理响应的时间并对其进行区分,如果它

作为一个初学者,我很难掌握如何编写这样的查询。任何帮助表示赞赏。谢谢

【问题讨论】:

  • 你可以为每个用户和代理编写两个单独的查询,然后根据票号加入。然后是一个外部查询以应用公式。你在使用 plsql 吗?或Mysql
  • 我正在使用mysql,但我很困惑如何编写一个查询来检查票号是否相同,然后如果第一个是用户,然后是代理,最后做一个检查他们的 createdat 字段之间的差异是否为
  • 当他们回复时,该表中没有任何内容可以告诉您,那么您如何计算出花了多长时间?
  • CreatedAt 字段是一个时间戳,你可以使用它。工单号告诉您工单是什么,发件人字段标识是用户还是代理响应。所以第一条记录永远是用户,第二条应该是代理(除非用户发送另一条消息)

标签: sql metric


【解决方案1】:

我不确定你到底想达到什么目标,但你可以从这样的事情开始。

select user.TicketNumber,user.CreatedAt-agent.CreatedAt from 
    (Select TicketNumber ,CreatedAt ,Sender from Service_Table user
    Where Sender Like 'User') user left outer join 
    (Select TicketNumber ,CreatedAt ,Sender from Service_Table agent Where Sender Like 'Agent') agent
    on  user.TicketNumber  =agent.TicketNumber

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多