Решение, которое я нашел работавшим лучше всего, состояло в том, чтобы поместить "общие" файлы конфигурации в центральные файлы и затем использовать событие перед сборкой в Visual Studio для копирования их в относительную папку каждого проекта, для которого был нужен он.
Если вы не можете просто ограничить сам запрос с помощью предложения where
, вы можете использовать тот факт, что агрегат count
учитывает только не -null values:
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 ...
Assuming you do not want to restrict the rows that are returned because you are aggregating other values as well, you can do it like this:
select count(case when Position = 'Manager' then 1 else null end) as ManagerCount
from ...
Let's say within the same column you had values of Manager, Supervisor, and Team Lead, you could get the counts of each like this:
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
ТОЛЬКО эти строки ...
Вы бы сделали это, используя 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
I think you can use a simple WHERE clause to select only the count some record.
Do you mean just this:
SELECT Count(*) FROM YourTable WHERE Position = 'Manager'
If so, then yup that works!
Вы также можете использовать ключевое слово Pivot, если используете SQL 2005 или выше
SELECT *
FROM @Users
PIVOT (
COUNT(Position)
FOR Position
IN (Manager, CEO, Employee)
) as p
Test Data Set
DECLARE @Users TABLE (Position VARCHAR(10))
INSERT INTO @Users (Position) VALUES('Manager')
INSERT INTO @Users (Position) VALUES('Manager')
INSERT INTO @Users (Position) VALUES('Manager')
INSERT INTO @Users (Position) VALUES('CEO')
INSERT INTO @Users (Position) VALUES('Employee')
INSERT INTO @Users (Position) VALUES('Employee')
INSERT INTO @Users (Position) VALUES('Employee')
INSERT INTO @Users (Position) VALUES('Employee')
INSERT INTO @Users (Position) VALUES('Employee')
INSERT INTO @Users (Position) VALUES('Employee')