0

这是我应该在 Informatica 中完成的任务。我只想了解可能的解决方案。我并不特别需要查询,只是 SQL/Oracle 中的步骤可能会有很大帮助。

问题陈述:

NW Telecommunications 是印度的蜂窝通信服务提供商。他们在印度的所有州都有业务。作为业务运营的一部分,他们会收集有关服务取消原因的详细信息,以改进客户保留策略。他们现在有兴趣了解客户停止服务的主要原因。

以下是源表的结构

NWT_Connection_Details

Phone_No 
SIM (primary key)
Connection_Start_Date
Rate_Plan_Id
Connection_Status
Connection_Closure_Date
Can_Reason_Id
Cust_Id (foreign key)
Home_Location

NWT_Cancellation_Reason

Can_Reason_Id (primary key)
Can_Text

取消原因表中的数据:

 Can_Reason_Id       Can_Text
 NW              Network Issues
 MNP             Porting to a competitor
 RP              Rate Plan Issue
 RL              Relocation
 CS              Unsatisfactory customer service

结果表是一个汇总表,其中包含发生的取消的汇总。目标表的结构如下。

Cancellations_Summary Can_Reason No. Of Cancellations Duration_of_Service Zone

注意:Duration_of_Service 是一个像 < 1 个月、1 到 3 个月、3 到 6 个月、6 到 12 个月和 > 12 个月这样的带

样本目标表数据:

NW      18         1 to 3      South
NW      5          1 to 3      South
CS      25         3 to 6      North
4

1 回答 1

1

这是执行您想要的基本查询:

select cr.can_text, count(*)
from nwt_connection_details cd join
     nwt_cancellation_reason cr
     on cd.can_reason_id = cr.can_reason_id
group by cr.can_text
order by count(*) desc     

不过,我正在回答,因为这提供了对某些事情发表评论的机会。首先,您甚至没有理由考虑在 Informatica 中进行这样的查询。这是数据库设计的查询类型。Oracle 是最好的方法。

其次,这可能不是您想要的一切。您需要考虑日期、客户类型和任期。通常,有一个 OLAP 系统来解决这些类型的请求(如果数据不太大,可能是 Excel 中的数据透视表)。可以使用 Informatica 或使用来自 Oracle 的查询来加载此类 OLAP 系统。

于 2013-01-28T14:09:48.333 回答