Oracle SQL:获得基于另一列的不同列值的计数

问题描述

这里有一个样本数据来说明我的情况,

CompanyInfo:

Name,Company,Location,Completed,Pending
Andy      AA        Home        4         2
Jim       AA        Office      3         3
Dahli     AA        Home        4         2
Monica    AA        Home        4         2
Chandler  AA    Home-Office     1         0
Ashley    AA    Home-Office     1         0

最后三列有重复的信息,我正在尝试获取相互绑定的位置数(已完成和未决)。因此输出如下所示,

   Company,Count(Locations),Count( Completed+Pending > 0),AA            3                   3

为什么Count(Completed + Pending> 0)是3? “家庭”,“办公室”和“家庭办公室”列只有三种独特的组合,其中“完成” +“待决”之和> 0。

我确实在下面尝试过,但是它给了我(AA,3,6),因为它正在处理所有6行以获取计数。

select Company,count(distinct Location),SUM (
               CASE
                  WHEN (Completed + Pending) > 0 THEN 1
                  ELSE 0
               END)
               AS Total
       From CompanyInfo
       group by Company;

有指针吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)