Sql server 如何计算mssql中具有特定数据的行数

Sql server 如何计算mssql中具有特定数据的行数,sql-server,count,Sql Server,Count,我有下表: 项目: ID Type StockExists 01 Cellphone T 02 Cellphone F 03 Apparrel T 我想计算现有库存的项目数,即StockExists='T'的行数。我正在执行查询,如下所示: Select count(StockExists) From [Items] where StockExists='T' 但它总是返回1。正确的方法是什么 编辑: 另外,如何执行另一个这样的计数

我有下表:

项目:

ID     Type     StockExists  
01     Cellphone   T
02     Cellphone   F
03     Apparrel    T
我想
计算现有库存的项目数,即
StockExists='T'
的行数。我正在执行查询,如下所示:

Select count(StockExists) 
From [Items] where StockExists='T'
但它总是返回1。正确的方法是什么

编辑:

另外,如何执行另一个这样的计数操作并将它们添加到一行中,例如

Select count(StockExists) 
From [Items] where StockExists='T'` and `Select count(Type) 
From [Items] where Type='Cellphone'` ? 
因此,您的查询应该可以工作

结果:

EXISTCOUNT
    2
EXISTCOUNT    CELLPHONECOUNT
    2               2

更新

如何执行另一个这样的计数操作,并在 例如,一行从[Items]中选择count(StockExists),其中 StockExists='T'并从[Items]中选择计数(类型),其中 键入“手机”

您可以将
SUM
CASE
一起使用:

SELECT 
  ExistCount = SUM(CASE WHEN StockExists='T' THEN 1 ELSE 0 END) ,
  CellphoneCount = SUM(CASE WHEN Type='Cellphone' THEN 1 ELSE 0 END) 
FROM 
    dbo.Items
结果:

EXISTCOUNT
    2
EXISTCOUNT    CELLPHONECOUNT
    2               2

选择总和(字段为'this'时为1,否则为0结束)作为总数 从你的桌子上

当使用CASE时,在下面这样的情况下使用NULL比使用0更好


谢谢,现在可以用了。我该怎么做才能在同一个表上获得与前一个表相同的另一个计数(使用一些不同的条件),并将这两个计数合并到不同列的一行中?您的查询看起来很好