问题描述
我是个新手,很抱歉,在此先感谢您!
我有这个查询,最终我想要:
- 计算有多少客户
- 计算最近60天内联系的客户数量
- 与客户联系的地方,然后填充最后的F.call_dt,F.Last_Call_Date,F.call_nbr
样本数据:
Row...Terr......call_dt......Last_Call_Date.....call_nbr.....acct_#.....#_aligned.........contact.........compliance
1.......SR 1.......?................?.............?............6853.........1..............0.................0
2.......SR 1.......?................?.............?.............370.........1..............0.................0
3.......SR 1...6/23/2019....6/23/2019 .........75001..........784370........1..............1.................1 **
4.......SR 1.......?................?.............?...........784370........1..............0.................0
这就是我希望看到的:
Row...Terr......call_dt......Last_Call_Date.....call_nbr.....acct_#.....#_aligned.........contact.........compliance
1.......SR 1.......?................?..............?.............6853........1..............0................0
2.......SR 1.......?................?..............?..............370........1..............0................0
3.......SR 1...6/23/2019.......6/23/2019 .........75001........784370........1..............1................1
解决方法
在同事的帮助下,我通过添加以下合格的rank()over()语句来确保仅获得最新的last_call_dt信息,从而达到了预期的结果:
qualify rank() over (partition by terr,acct # order by call_dt) = 1
希望这对某人有帮助!