0

我正在尝试了解在子查询内部与外部计算变量的重要性。Query1:在里面使用count(),得到错误的结果,但我不知道为什么:

sel
monthday_key,
 mfr_mdl_code,
--svc_time_Zone_Code,
cntc_rqst_subarea_desc, 
CALL_COUNT
from 
(
sel 
monthday_key,
--svc_time_Zone_Code,
mfr_mdl_code, 
 cntc_rqst_subarea_desc 
 ,mfr_Ser_id, 
 count(cntc_rqst_id) call_count
from cust_Acct_equip_fact A join monthday_dim b on monthday_key between bgn_monthday_key and end_monthday_key 
and equip_stat_code = 'ACTV' and monthday_key = current_Date-1
join equip_type_dim C on a.equip_type_key=c.equip_type_key and mfr_mdl_code like any ('C21)
join cntc_rqst_tech_fact D on a.cust_acct_key=cntc_key and cntc_Rqst_bgn_Date = monthday_key and cntc_rqst_bgn_date = current_Date-1
join cust_acct_dim E on a.cust_acct_key=e.cust_Acct_key
AND D.CNTC_RQST_SUBAREA_DESC in ('NO SS')
--and svc_time_Zone_Code in ('P','E','M','C')
group by 1,2,3,4
) T1 
group by 1,2,3,4

在子查询之外使用 Count() ,得到正确的结果:

sel
monthday_key,
 mfr_mdl_code,
--svc_time_Zone_Code,
cntc_rqst_subarea_desc, 
count(cntc_Rqst_id) as CALL_COUNT
from 
(
sel 
monthday_key,
--svc_time_Zone_Code,
mfr_mdl_code, 
 cntc_rqst_subarea_desc 
 ,mfr_Ser_id, 
 cntc_rqst_id
from cust_Acct_equip_fact A join monthday_dim b on monthday_key between bgn_monthday_key and end_monthday_key 
and equip_stat_code = 'ACTV' and monthday_key = current_Date-1
join equip_type_dim C on a.equip_type_key=c.equip_type_key and mfr_mdl_code like any ('C21')
join cntc_rqst_tech_fact D on a.cust_acct_key=cntc_key and cntc_Rqst_bgn_Date = monthday_key and cntc_rqst_bgn_date = current_date-1
join cust_acct_dim E on a.cust_acct_key=e.cust_Acct_key
AND D.CNTC_RQST_SUBAREA_DESC in ('NO SS')
--and svc_time_Zone_Code in ('P','E','M','C')
group by 1,2,3,4,5
) T1 
group by 1,2,3
4

0 回答 0