暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何使用带有聚合函数的条件案例

askTom 2018-06-07
423

问题描述

我有一个查询,如下所示:
选择CH.Blng _ 国家 _ prvdr_idntfr
案例
当CH.TCN_DATE在TO_DATE('01-JAN-2016 ','DD/MM/yyy') 和TO_DATE ('30-jun-2016','DD/MM/yyy') 之间时
然后四舍五入 (SUM(CH.Paid_indemation)/COUNT(DISTINCT CH.MBR_IDENTIFIER),2)
结束
从广告索赔头CH
其中CH.BSNS_STATUS_CID = 71
和CH.BLNG_PRVDR_LCTN_TXNMY_CODE = '282n00000x'
按CH.BLNG_NATIONAL_PRVDR_IDNTFR分组;


可以在然后分组中使用聚合函数吗?请帮忙!

专家解答

是的,您可以将聚合函数 * 放在 * CASE语句周围,利用这样一个事实,即在没有 'else' 的情况下,'false' 大小写将返回null,因此只对符合条件的行求和,例如

SQL> create table t ( x varchar2(1), y int );

Table created.

SQL>
SQL> insert into t values ('a',10);

1 row created.

SQL> insert into t values ('a',11);

1 row created.

SQL> insert into t values ('a',12);

1 row created.

SQL> insert into t values ('b',10);

1 row created.

SQL> insert into t values ('b',20);

1 row created.

SQL>
SQL> select
  2    sum(case when x = 'a' then y end) sum_of_a,
  3    sum(y) total
  4  from t;

  SUM_OF_A      TOTAL
---------- ----------
        33         63
复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论