是否能夠在Count()
指定條件? 我想只計算在Position列中有「Manager」的行。 spa
我想在count語句中執行它,而不是使用WHERE
; 我問這個問題,由於我須要在同一個計數管理人員和其餘SELECT
(像Count(Position = Manager), Count(Position = Other))
因此WHERE
在這個例子中沒有用我。 code
SELECT COUNT(*) FROM bla WHERE Position = 'Manager'
我認爲你能夠使用一個簡單的WHERE子句來只選擇一些記錄。 it
你的意思是這樣的: io
SELECT Count(*) FROM YourTable WHERE Position = 'Manager'
若是是這樣,那麼是的,有效! select
假設您不想限制返回的行,由於您也在聚合其餘值,您能夠這樣作: 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 ...
取決於你的意思,但意義的另外一種解釋是你想要計算具備特定值的行,但不但願將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