SQL-难以联接表并使用特定日期条件进行汇总函数

问题描述

真的希望有人能帮我解决这个问题,因为我碰壁想自己解决这个问题,并使工作变得更轻松。不幸的是,由于机密信息无法共享数据,因此我在下面准备了一个模拟场景来帮助解释该问题。

数据示例-https://docs.google.com/spreadsheets/d/1o3vUDEyK3OAHorlQIL_FuOn_b92pyv7uV8_YHfUHcII/edit?usp=sharing

尽管这很容易在电子表格中完成,如上面的示例所示,但是由于工作原因,我必须通过sql来完成此任务,但是我还有10,000行的限制要解决(全局限制,不可更改)。 / p>

表2中的数据超出了此限制,一种解决方法是将表2中的date列替换为表1中的合并组列。然后计算开始和结束之间的交互总数表1中指定的日期(按业务代表姓名和分组),最后以L:N列中希望合并的输出示例结尾

因此,我们不必为每天的每个座席输出列表,而是可以显示每个月在其月期间的互动次数,这将大大减少行数。

感谢您对此做出的任何回应,在此先感谢您! 汤姆

解决方法

如果“代理商”可以成为最多1个“组”的一部分,那么这应该可行:

select
    `Table 1`.`Agent Name` as `Agent`,`Table 1`.`Merged` as `Group`,sum(`Table 2`.`Number of Interactions`) as `Number of Interactions`
from
    `Table 2`
    inner join `Table 1`
        on (`Table 1`.`Agent Name` = `Table 2`.`Agent Name`
            and `Table 1`.`Start_date` <= `Table 2`.`Date`
            and `Table 1`.`End_date` >= `Table 2`.`Date`)
group by
    `Table 1`.`Agent Name`,`Table 1`.`Merged`