【发布时间】:2020-12-08 06:54:30
【问题描述】:
我是新手,非常抱歉,提前谢谢你!
我有这个最终我想要的查询:
- terr 拥有的客户数
- 统计过去 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
【问题讨论】:
-
可能比需要的复杂一点,但是...而不是
F.contact_stat as contacted,你不想max(F.contact_stat) as contacted,(并从最后的GROUP BY中删除此列。 -
您按
F.cntry_enti_nbr分组,因此count (distinct F.cntry_enti_nbr)将始终为 1。从 Select/Group By 中删除它 -
感谢 Fred 和 dnoeth。我已经实施了你的两个建议。但是,仍然为帐户 #784370 生成两条记录。
-
当然,基于 call_dt......Last_Call_Date......call_nbr 为 NULL/NOT NULL。您可能会添加另一个 QUALIFY,但我怀疑它会按预期工作,您可能分组很多,正如 Fred 所说,它似乎过于复杂。
-
@dnoeth 不确定如何实施您的建议。事实上,我想说的是,如果过去 60 天内没有电话,那么 #contacted 为 0 并将最后通话日期、通话日期和 call_nbr 留空。如果过去 60 天内有电话,请告诉我最新的电话详情。
标签: sql teradata teradata-sql-assistant