0

我有以下查询:

    SELECT count(Committees)
    FROM [Annual Questionnaire]
    WHERE Committees=TRUE;

但是,我想在结果中包括其他列,例如 Insurance、Equalities 和计数,其中值为 True,例如 Insurance=True。不必计算表中的所有列。

我认为一个伪查询将是:

SELECT count(Committees),
       count(Insurance)
FROM [Annual Questionnaire]
WHERE Committees=TRUE
  AND Insurance=TRUE;

^ 这不起作用,因为它选择了只有委员会和保险为真的行

基本上,我如何计算值为 True 的指定列?

4

2 回答 2

3

你可以做类似的事情

SELECT 
    SUM(IIF(Committees=True, 1, 0))
    , SUM(IIF(Insurance=True, 1, 0))
FROM [Annual Questionnaire]
于 2013-04-09T10:08:00.627 回答
1

如果在 WHERE 子句中同时指定两者,它只会返回列都为真的行。请记住,执行顺序是在 Select 之前执行 Where 子句,因此它将根据您拥有的数据过滤数据,然后选择您告诉它选择的任何内容。

这是执行顺序:

FROM clause
WHERE clause
GROUP BY clause
HAVING clause
SELECT clause
ORDER BY clause 

已经有类似的线程:如何使用一个 SQL 查询获得多个计数?

于 2013-04-09T10:05:05.940 回答