是否可以在Count()中指定一个条件?我希望只计算在Position列中有“Manager”的行。
我想在count语句中做,而不是用WHERE;我正在询问它,因为我需要在相同的SELECT(类似count (Position = Manager), count (Position = Other))中计算经理和其他,所以在这个例子中,WHERE对我来说没有用处。
是否可以在Count()中指定一个条件?我希望只计算在Position列中有“Manager”的行。
我想在count语句中做,而不是用WHERE;我正在询问它,因为我需要在相同的SELECT(类似count (Position = Manager), count (Position = Other))中计算经理和其他,所以在这个例子中,WHERE对我来说没有用处。
当前回答
SELECT COUNT(*) FROM bla WHERE Position = 'Manager'
其他回答
你的意思是:
SELECT Count(*) FROM YourTable WHERE Position = 'Manager'
如果是这样,那么是的,这是可行的!
这取决于你的意思,但另一种解释的意思是,你想要计算具有特定值的行,但不想将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
以下是我所做的,以获得一个数据集,其中包括每个集装箱内满足标准的总数和数量。让我来回答这个问题"有多少集装箱的货物超过X%大于51号"
select
Schedule,
PackageNum,
COUNT (UniqueID) as Total,
SUM (
case
when
Size > 51
then
1
else
0
end
) as NumOverSize
from
Inventory
where
customer like '%PEPSI%'
group by
Schedule, PackageNum
@Guffa的回答很好,只要指出可能用IF语句更干净就行了
select count(IIF(Position = 'Manager', 1, NULL)) as ManagerCount
from ...
我认为您可以使用一个简单的WHERE子句来只选择count some记录。