是否能夠在Count()中指定條件?

是否能夠在Count()指定條件? 我想只計算在Position列中有「Manager」的行。 spa

我想在count語句中執行它,而不是使用WHERE ; 我問這個問題,由於我須要在同一個計數管理人員和其餘SELECT (像Count(Position = Manager), Count(Position = Other))因此WHERE在這個例子中沒有用我。 code


#1樓

SELECT COUNT(*) FROM bla WHERE Position = 'Manager'

#2樓

我認爲你能夠使用一個簡單的WHERE子句來只選擇一些記錄。 it


#3樓

你的意思是這樣的: io

SELECT Count(*) FROM YourTable WHERE Position = 'Manager'

若是是這樣,那麼是的,有效! select


#4樓

假設您不想限制返回的行,由於您也在聚合其餘值,您能夠這樣作: vi

select count(case when Position = 'Manager' then 1 else null end) as ManagerCount
from ...

假設您在同一列中擁有經理,主管和團隊負責人的價值,您能夠獲得每一個人的計數: co

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 ...

#5樓

取決於你的意思,但意義的另外一種解釋是你想要計算具備特定值的行,但不但願將SELECT限制爲JUST那些行...... cas

你能夠使用帶有子句的SUM() ,而不是使用COUNT() :例如 ab

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
相關文章
相關標籤/搜索