sqlite 如何构造这个需要窗口函数的SQL查询?

s71maibg  于 2023-03-08  发布在  SQLite
关注(0)|答案(1)|浏览(131)

我有一组员工,他们可以接听呼叫或协助处理其他人的呼叫。也就是说,所有员工要么最初接听呼叫(“主要”),要么支持首先接听呼叫的其他人(“支持”)。数据库如下所示:

| 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来处理类似的情况,但这次没有帮助。

omjgkv6w

omjgkv6w1#

我可以用SELF JOIN解决这个问题,关键是以前支持的(Supported By)来自t2的调用计数,t2的行号小于t1的行号(正如JNevill建议的那样)。

相关问题