如何编写SQL统计表中value字段true与false值的总出现次数
错误原因
你编写的SQL中WHERE条件使用了AND逻辑运算符,要求同时满足value=true和value=false,但同一行记录的value字段不可能同时等于两个不同的值,因此查询结果永远为0,不符合统计需求。
正确写法
如果你要统计value列所有为true或false的记录总条数(预期结果为4),可以使用以下两种方式:
- 用
OR替换原语句的AND,明确匹配两种值:
SELECT COUNT(*) FROM test WHERE value = true OR value = false;
- 如果你确认value列没有除true、false之外的其他值,可以直接统计全表行数:
SELECT COUNT(*) FROM test;
补充说明
如果你的value字段是字符串存储类型,需要给值加单引号匹配,避免语法错误:
SELECT COUNT(*) FROM test WHERE value = 'true' OR value = 'false';
如果需要分别统计true和false的出现次数,可以用分组查询:
SELECT value, COUNT(*) AS 出现次数 FROM test GROUP BY value;
内容的提问来源于stack exchange,提问作者Automation Engr
相关产品推荐
相关产品推荐

