Mysql 值范围内记录的计数和百分比
我有一张有列的桌子Mysql 值范围内记录的计数和百分比,mysql,sql,database,Mysql,Sql,Database,我有一张有列的桌子 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 我需要检
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的以下数据:
- 指派
- 以下范围内的领料率(百分比和计数)
- 根据你的例子,你已经差不多做到了。您所需要的只是单个和与总和的比率(或者计数会这样做)。差不多
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;
应该是一个有效的示范,你可以继续下去选择AssignedTo, 总和(1)全部计数, 总数(例) 当HandleTime-CreatedTime 1 那么1 其他0 结束)范围2PickupCount, ... 总数(例) 当HandleTime-CreatedTime 1 那么1 其他0 结束)/总和(1)*100范围2百分位, ... 从票上 被指派的小组;
(免责声明:根本没有测试,因为没有提供DDL和DML。)如果您提供了所需的结果,这将有所帮助。“收货范围百分比”和“收货范围计数和百分比”是什么意思?请参阅@GordonLinoff我添加了更多详细信息。看看您是否能理解它们@草莓我已经添加了更多的细节。看看你是否能理解它们!别担心——如果它们不符合要求,那么我甚至不会费心看它们TicketID | AssignedTo | CreatedTime | HandleTime | FinishTime 1 001 2 3 3 2 001 4 6 8 3 002 1 2 3
TicketID | PickupTime | CompletedTime 1 1 1 2 2 4 3 1 2
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;
- 根据你的例子,你已经差不多做到了。您所需要的只是单个和与总和的比率(或者计数会这样做)。差不多