即使在分组后,我也会获得重复值 [英] I am getting duplicate values even after group by

查看:64
本文介绍了即使在分组后,我也会获得重复值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SELECT      DISTINCT    --EU.ecpuser_ID
                                0 AS Total_Flag
                                ,CASE WHEN EU.ecpuser_type='p' THEN   EU.ecpuser_ID
                                    ELSE EU.ecpuser_fullname END AS USER_NAME
                                ,COALESCE((CASE WHEN ELT.ecpelginquirytransaction_current_status='Sent' THEN COUNT(ELT.ecpelginquirytransaction_current_status) END ),0) AS NOT_RESPONDED_COUNT
                                ,COALESCE((CASE WHEN ELT.ecpelginquirytransaction_current_status='Failed' THEN COUNT(ELT.ecpelginquirytransaction_current_status) END ),0) AS FAILED_COUNT
                                ,COALESCE((CASE WHEN ELT.ecpelginquirytransaction_current_status='Responded' THEN COUNT(ELT.ecpelginquirytransaction_current_status) END ),0)AS RESPONDED_COUNT
                                ,COALESCE((CASE WHEN ELT.ecpelginquirytransaction_current_status='Responded' THEN COUNT(ELT.ecpelginquirytransaction_current_status) END ),0)+ COALESCE((CASE WHEN ELT.ecpelginquirytransaction_current_status='Failed' THEN COUNT(ELT.ecpelginquirytransaction_current_status) END ),0)+ COALESCE((CASE WHEN ELT.ecpelginquirytransaction_current_status='Sent' THEN COUNT(ELT.ecpelginquirytransaction_current_status) END ),0) AS TOTAL_COUNT
                         FROM tbl_eCPElgInquiryTransaction ELT
                         INNER JOIN tbl_ecpuser EU ON (ELT.ecpelginquirytransaction_createdby=EU.ecpuser_key)
                         WHERE ecpaccount_key ='0481843194'  AND ELT.eCPElgInquiryTransaction_Sent_Date
                     BETWEEN '2012-11-27 22:00:01' AND '2013-12-04 22:00:00' AND EU.ecpuser_fullname='Lucindia Evans'  GROUP BY
                    EU.ecpuser_type
                   ,EU.ecpuser_ID
                   ,EU.ecpuser_fullname
                   ,ELT.ecpelginquirytransaction_current_status







结果集



0;Lucindia Evans; 0; 1; 0; 1

0;Lucindia Evans; 0; 0; 57; 57

0;Lucindia Evans; 1; 0; 0; 1



例外输出



0;Lucindia Evans; 1; 1; 57; 59




Result set

0;"Lucindia Evans";0;1;0;1
0;"Lucindia Evans";0;0;57;57
0;"Lucindia Evans";1;0;0;1

The excepted output

0;"Lucindia Evans"; 1;1;57;59

推荐答案

我不会复制您的整个查询,只需使用名称...您可以在下面的空白处添加查询。 />


I will not copy your whole query, just use the names...you add the query in the space below.

SELECT Total_Flag, USER_NAME, SUM(NOT_RESPONDED_COUNT), SUM(FAILED_COUNT), SUM(RESPONDED_COUNT), SUM(TOTAL_COUNT)
FROM
(your query above) qry
GROUP BY 
TOTAL_FLAG, USER_NAME







您可以直接在查询中添加总和,但是对于案例和COALESCE,它可能变得不可读(甚至更多) - 同时,尝试按状态删除分组并输入查询。甚至可能完全。





如果这有帮助请花时间接受解决方案。谢谢。




You could add sums directly into your query, but with cases and COALESCE it could get unreadable (even more then it is) - also, try removing group by status and type in your query. Maybe even completely.


If this helps please take time to accept the solution. Thank you.


这篇关于即使在分组后,我也会获得重复值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆