问题描述
这里有一个样本数据来说明我的情况,
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;
有指针吗?
解决方法
我认为,您需要有条件的count(distinct)
:
select Company,count(distinct Location),count(distinct case when Completed + Pending > 0 then location end)
from CompanyInfo
group by Company;