3 回答

TA貢獻1934條經驗 獲得超2個贊
如果您不能僅使用where子句限制查詢本身,則可以使用以下事實:count聚合僅計算非空值:
select count(case Position when 'Manager' then 1 else null end)
from ...
您也可以sum類似的方式使用聚合:
select sum(case Position when 'Manager' then 1 else 0 end)
from ...

TA貢獻1818條經驗 獲得超8個贊
假設您也不想因為聚合其他值而限制返回的行,則可以這樣做:
select count(case when Position = 'Manager' then 1 else null end) as ManagerCount
from ...
假設在同一列中您具有經理,主管和團隊負責人的值,您可以像這樣獲得每個值:
select count(case when Position = 'Manager' then 1 else null end) as ManagerCount,
count(case when Position = 'Supervisor' then 1 else null end) as SupervisorCount,
count(case when Position = 'Team Lead' then 1 else null end) as TeamLeadCount,
from ...

TA貢獻1793條經驗 獲得超6個贊
取決于您的意思,但含義的另一種解釋是您要對具有特定值的行進行計數,但又不想將僅限SELECT于這些行...
您可以使用SUM()帶有這樣的子句的方法來代替,COUNT()例如:
SELECT SUM(CASE WHEN Position = 'Manager' THEN 1 ELSE 0 END) AS ManagerCount,
SUM(CASE WHEN Position = 'CEO' THEN 1 ELSE 0 END) AS CEOCount
FROM SomeTable
- 3 回答
- 0 關注
- 1692 瀏覽
添加回答
舉報