我有以下查询:
SELECT count(Committees)
FROM [Annual Questionnaire]
WHERE Committees=TRUE;
但是,我想在结果中包括其他列,例如保险,等式和计数,其中值为True,例如保险=True。不是表中的所有列都要计数。
我认为伪查询应该是:
SELECT count(Committees),
count(Insurance)
FROM [Annual Questionnaire]
WHERE Committees=TRUE
AND Insurance=TRUE;
^这不起作用,因为它选择的行只有Committees and Insurance为True
基本上,我如何计算值为True的指定列?
你可以这样做
SELECT
SUM(IIF(Committees=True, 1, 0))
, SUM(IIF(Insurance=True, 1, 0))
FROM [Annual Questionnaire]
如果在WHERE子句中都指定了这两个字段,它将只返回列都为true的行。请记住,Where子句的执行顺序是在Select之前执行的,因此它将根据您拥有的数据过滤掉数据,然后选择您让它选择的内容。
执行顺序:
FROM clause
WHERE clause
GROUP BY clause
HAVING clause
SELECT clause
ORDER BY clause
有类似的线程已经:如何获得多个计数与一个SQL查询?