3 回答

TA貢獻(xiàn)1934條經(jīng)驗 獲得超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貢獻(xiàn)1818條經(jīng)驗 獲得超8個贊
假設(shè)您也不想因為聚合其他值而限制返回的行,則可以這樣做:
select count(case when Position = 'Manager' then 1 else null end) as ManagerCount
from ...
假設(shè)在同一列中您具有經(jīng)理,主管和團(tuán)隊負(fù)責(zé)人的值,您可以像這樣獲得每個值:
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貢獻(xiàn)1793條經(jīng)驗 獲得超6個贊
取決于您的意思,但含義的另一種解釋是您要對具有特定值的行進(jìn)行計數(shù),但又不想將僅限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 關(guān)注
- 1690 瀏覽
添加回答
舉報