是否能够在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