我有一组员工,他们可以接听呼叫或协助处理其他人的呼叫。也就是说,所有员工要么最初接听呼叫(“主要”),要么支持首先接听呼叫的其他人(“支持”)。数据库如下所示:
| CallAnsweredBy | SupportedBy | Outcome | Date |
| -------------- | ----------- | ------- | -------- |
| TeamMem1 | TeamMem2 | 10 | 20230101
| TeamMem2 | TeamMem1 | 10 | 20230101
| TeamMem3 | TeamMem1 | 9 | 20230101
. . .
| TeamMem2 | TeamMem1 | 5 | 20230101
| TeamMem3 | TeamMem4 | 4 | 20230101
. . .
我想知道当呼叫#2(上面的第二行)进入时(例如),应答人员(TM2)在将该呼叫视为主要呼叫之前在一整天中支持了多少个呼叫?(对于20230101上的呼叫#2,答案将是1。对于呼叫#3,答案将是零,因为TeamMem3在将该呼叫视为“主要”呼叫之前不支持任何呼叫。)
我以前尝试过PartitionBY来处理类似的情况,但这次没有帮助。
1条答案
按热度按时间omjgkv6w1#
我可以用SELF JOIN解决这个问题,关键是以前支持的(Supported By)来自t2的调用计数,t2的行号小于t1的行号(正如JNevill建议的那样)。