2016-03-01 119 views
0

我在教自己的SQL,遇到了这个服务级别的问题,并被难住。我希望得到一些帮助。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' 

分子是给了我很多问题,我希望有人能走路我通过它。我知道我需要识别具有相同票号的行,确定用户何时发送票证,并确定代理人何时响应并做出改变,如果它是< = 6,则计算它,吨。

作为一个初学者,我在处理如何编写这样的查询方面遇到了一些麻烦。任何帮助表示赞赏。谢谢

+0

您可以为每个用户和代理编写两个单独的查询,然后根据票证编号加入。然后用一个外部查询来应用公式。你在使用plsql吗?或Mysql – Avi

+0

我正在使用mysql,但我很困惑如何编写一个查询,检查票号是否相同,然后如果第一个用户是一个代理,最后做一个检查,如果之间的差异他们创建的字段是<= 6。 – dnasim

+0

这张桌子里没有什么可以告诉你他们什么时候回复,那么你如何计算出花了多长时间? –

回答

0

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

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