|
原帖由 askgyliu 于 2007-12-14 12:52 发表 ![]()
This is nothing to do with DB2, Oracle, or what so ever.
Part1 from exfmt2:
select b.cust_group_id as group_id, aa.pre_m_arpu_d,sum(aa.PRE_M_ARPU)
as arpu,sum(cc.m) as m,sum(cc.CLV) as clv, count(b.cust_id) as
EXIST_CUST_C, sum(aa.NOW_ARPU) as EXIST_SUM_NOW_ARPU
from
(select distinct cust_id
from ccp.PAR_CUST_CUST_GRP_ASSOC_200709 ) a inner join
ccp.PAR_CUST_CUST_GRP_ASSOC_200710 b on b.cust_id = a.cust_id
inner join ccp.CUST_CHURN_INFO_200710 aa on
aa.cust_id=a.cust_id inner join ccp.CUST_CCP_INFO_200710 cc on
cc.cust_id=a.cust_id
group by b.cust_group_id,aa.pre_m_arpu_d
Part 1 from exfmt1:
select b.cust_group_id as group_id, aa.pre_m_arpu_d,sum(aa.PRE_M_ARPU)
as arpu,sum(cc.m) as m,sum(cc.CLV) as clv, count(b.cust_id) as
EXIST_CUST_C, sum(aa.NOW_ARPU) as EXIST_SUM_NOW_ARPU
from session.V_PRE_EXP_GROUP_CUST1 a inner join
ccp.PAR_CUST_CUST_GRP_ASSOC_200710 b on b.cust_id = a.cust_id
inner join ccp.CUST_CHURN_INFO_200710 aa on
aa.cust_id=a.cust_id inner join ccp.CUST_CCP_INFO_200710 cc on
cc.cust_id=a.cust_id
group by b.cust_group_id,aa.pre_m_arpu_d
你觉得这两者的差别只是TEMP跟FACT吗?一个简单的地方,在Part1 from exfmt2中,DB2知道CUST_ID是唯一并且是排序的,而在Part 1 from exfmt1中,DB2能知道CUST_ID是唯一的吗?
对DB2内部是怎么执行的,我不清楚撒!你确定exfmt2是最佳选择吗? |
|