admin

计算另一列的值为1的列的行

sql

我正在使用aselect count distinct来计算一列中的记录数。但是,我只想计算另一列的值为1的记录。

所以我的桌子看起来像这样:

名称------类型
abc --------- 1
def ---------- 2
ghi ---------- 2
jkl ------ ----- 1
mno -------- 1

我只希望查询只计算abc,jkl和mno,并因此返回“ 3”。

我无法使用CASE函数执行此操作,因为这似乎仅适用于同一列中的条件。

编辑:对不起,我应该添加,我想做一个计算这两种类型的查询。所以结果应该更像是:1 — 3 2 — 2


阅读 147

收藏
2021-06-07

共1个答案

admin

SELECT COUNT(*) 
  FROM dbo.[table name] 
  WHERE [type] = 1;

如果要按类型返回计数:

SELECT [type], COUNT(*)
  FROM dbo.[table name]
  GROUP BY [type]
  ORDER BY [type];

您应避免使用诸如type之类的关键字作为列名-如果您使用更具体的非保留字,则可以避免使用很多方括号。

2021-06-07