gpt4 book ai didi

mysql - 值范围内记录的计数和百分比

转载 作者:行者123 更新时间:2023-11-29 10:14:53 25 4
gpt4 key购买 nike

我有一个包含列的表格

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

我需要检索分组到各个分配给 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 张票。票证的 PickupTime 和 CompletedTime 为

TicketID | PickupTime | CompletedTime
1 1 1
2 2 4
3 1 2

因此,对于用户 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

最佳答案

根据你的例子,你已经差不多明白了。您所需要的只是各个总和与总和的比率(或者计数会做到这一点)。类似的东西

SELECT AssignedTo,
sum(1) AllCount,
sum(CASE
WHEN HandleTime - CreatedTime <= 1
THEN 1
ELSE 0
END) Range1PickupCount,
sum(CASE
WHEN HandleTime - CreatedTime > 1
THEN 1
ELSE 0
END) Range2PickupCount,
...
sum(CASE
WHEN HandleTime - CreatedTime <= 1
THEN 1
ELSE 0
END) / sum(1) * 100 Range1PickupPercentage,
sum(CASE
WHEN HandleTime - CreatedTime > 1
THEN 1
ELSE 0
END) / sum(1) * 100 Range2PickupPercentage,
...
FROM Tickets
GROUP BY AssignedTo;

应该是一个有效的演示并且您可以继续进行。

(免责声明:根本没有测试,因为没有提供 DDL 和 DML。)

关于mysql - 值范围内记录的计数和百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50261115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com