如何使用where子句计算多个列? (SQL)

时间:2013-04-09 09:59:59

标签: sql ms-access

我有以下查询:

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

但是,我想在结果中包含其他列,例如保险,平等并计算价值为真的地方,例如保险=真。并非表中的所有列都必须计算在内。

我认为伪查询是:

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

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

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

2 个答案:

答案 0 :(得分:3)

你可以做点什么

SELECT 
    SUM(IIF(Committees=True, 1, 0))
    , SUM(IIF(Insurance=True, 1, 0))
FROM [Annual Questionnaire]

答案 1 :(得分:1)

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

这是执行的顺序:

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

已经有类似的主题:How to get multiple counts with one SQL query?