2015-11-18 140 views
0

嗨,我收到错误作为GROUP BY和WITH BY条款可能不符合聚合功能以下查询。Teradata聚合函数GROUP BY

SELECT 
distinct CC.CASE_ID as CASE_ID, 
/*FIRST_VALUE(CC.CASE_OWN_NM) OVER(PARTITION BY CC.CASE_ID)as FST_AGNT_CASE_OWN_NM, 
FIRST_VALUE(CC.LSTMOD_BY_AGNT_PRFL_NM) OVER(PARTITION BY CC.CASE_ID)as FST_AGNT_PRFL_NM, 
LAST_VALUE(CC.CASE_OWN_NM) OVER(PARTITION BY CC.CASE_ID) as  LST_AGNT_CASE_OWN_NM, 
LAST_VALUE(CC.LSTMOD_BY_AGNT_PRFL_NM) OVER(PARTITION BY CC.CASE_ID) as LST_AGNT_PRFL_NM,*/ 
case when CC.CASE_OWN_NM is not null then MIN(CC.REC_DTTM_PST) end as FST_AGNT_EDIT_DTTM, 
case when CC.CASE_OWN_NM is not null then MAX(CC.REC_DTTM_PST) end as LST_AGNT_EDIT_DTTM, 
case when CC.CASE_STS_CD='Open' then MIN(CC.REC_DTTM_PST) end as CASE_OPEN_DTTM, 
case when CC.CASE_STS_CD in ('Closed', 'Auto Closed') then MIN(CC.REC_DTTM_PST) end as CASE_CLSE_OR_AUTO_CLSE_DTTM 

--CC.PU_DTTM as LMI_PU_DTTM, 
--CC.CLS_DTTM as LMI_CLS_DTTM 

FROM EDW_KATAMARI_T.CNTCT_CASE CC 
INNER JOIN EDW_KATAMARI_T.CNTCT_CASE_EXTN CCE 
ON CC.CNTCT_CASE_APND_KEY = CCE.CNTCT_CASE_APND_KEY 
INNER JOIN EDW_STAGE_COMN_SRC.STG_CNTCT_CASE_DELTA DELTA 
on CC.CASE_ID = DELTA.CASE_ID 
where CC.CASE_ID='23268760' 
    group by 1,2,3,4,5 

当我只使用组1仍然它给非聚合功能必须是组的一部分。

回答

1

您需要将CASE马上进入总:

MIN(CASE WHEN CC.CASE_OWN_NM IS NOT NULL THEN CC.REC_DTTM_PST END) AS FST_AGNT_EDIT_DTTM, 
MAX(CASE WHEN CC.CASE_OWN_NM IS NOT NULL THEN CC.REC_DTTM_PST END) AS LST_AGNT_EDIT_DTTM, 
MIN(CASE WHEN CC.CASE_STS_CD='Open' THEN CC.REC_DTTM_PST END) AS CASE_OPEN_DTTM, 
MIN(CASE WHEN CC.CASE_STS_CD IN ('Closed', 'Auto Closed') THEN CC.REC_DTTM_PST END) AS CASE_CLSE_OR_AUTO_CLSE_DTTM 

然后GROUP BY 1将工作

+0

感谢名单dnoeth我们如何能做到为如计数聚合函数相同:计数(不同CC.CASE_OWN_NM )as \t CASE_OWN_CHGS_IN_NUM, – user3514648

+0

您可以简单地将此计数添加到现有的查询中... – dnoeth

相关问题