Is it possible to specify a condition in
Count()? I would like to count only the rows that have, for example, “Manager” in the Position column.
I want to do it in the count statement, not using
WHERE; I’m asking about it because I need to count both Managers and Other in the same
SELECT (something like
Count(Position = Manager), Count(Position = Other)) so
WHERE is no use for me in this example.
If you can’t just limit the query itself with a
where clause, you can use the fact that the
count aggregate only counts the non-null values:
select count(case Position when 'Manager' then 1 else null end) from ...
You can also use the
sum aggregate in a similar way:
select sum(case Position when 'Manager' then 1 else 0 end) from ...