我有一个列表
TicketID - ID of the ticket
AssignedTo - UserID of person to whom ticket is assigned
CreatedTime - Time when Ticket is received
HandleTime - Time when Ticket is picked up for handling
FinishTime - Time when Ticket is finished handling
我需要检索分组到单个assignedto id的以下数据:
分配给
以下范围内的领料率(百分比和计数)
<1分钟
1-2分钟
2-5分钟
以下范围内的收盘价(百分比和计数)
与上述范围相同
总票数
我提出了一个初步的问题
SELECT
User,
sum(case when PickupTime <=1 then 1 else 0 end) as range1,
sum(case when PickupTime <=2 then 1 else 0 end) as range2,
...
FROM
(SELECT
((HandleTime - CreatedTime)/60000) as PickupTime,
((FinishTime - CreatedTime)/60000) as CompletedTime,
AssignedTo as User
FROM
TicketTable
)T
GROUP BY
User
在这里,我只能得到拾取范围计数。我仍然需要拾取范围百分比以及闭合范围计数和百分比。如何获得它们?
编辑:
让我们考虑一个样本数据集,只有两个范围<=1和>1,这里还直接将时间视为分钟,而在原始表中,时间存储为时间戳。
TicketID | AssignedTo | CreatedTime | HandleTime | FinishTime
1 001 2 3 3
2 001 4 6 8
3 002 1 2 3
在上表中,用户001被分配了总共2张票,用户002被分配了总共1张票。取票时间和完成时间是
TicketID | PickupTime | CompletedTime
1 1 1
2 2 4
3 1 2
因此,对于user-001,在分配给他的两张票中,他选择了1分钟范围内的1张票和1分钟范围以上的1张票。因此,1分钟范围内的票的百分比为50%,1分钟范围以上的票的百分比为50%。这同样适用于completedtime,也适用于user-002。所以我想要的最终结果是。
AssignedTo | Pickup_range1_count | Pickup_range2_count | Pickup_range1_percentage |
001 1 1 0.5
002 1 0 1
Pickup_range2_percentage | Complete_range1_count | Complete_range2_count |
0.5 1 1
0 0 1
Complete_range1_percentage | Complete_range2_percentage
0.5 0.5
0 1
1条答案
按热度按时间9rnv2umw1#
根据你的例子,你已经差不多明白了。您所需要的只是单个和与总和的比率(或者计数会这样做)。像这样的
应该是一个有效的示范和一些你可以继续下去。
(免责声明:根本没有测试,因为没有提供ddl和dml。)