使用 WHERE 和 COUNT 在 sql 查询中返回错误值
Posted
技术标签:
【中文标题】使用 WHERE 和 COUNT 在 sql 查询中返回错误值【英文标题】:Wrong value returned in sql query using WHERE and COUNT 【发布时间】:2018-10-05 02:43:06 【问题描述】:我有一个名为category_id
的列,其值可以是数字或空值(每行123 或空值)。我必须使用以下方法选择具有空值的类别 id 的总数 (COUNT):
SELECT COUNT(category_id)
FROM products
WHERE category_id = NULL;
它返回 0(错误值)。
【问题讨论】:
[重复]:***.com/questions/5285448/… mysql SELECT only not null values的可能重复 【参考方案1】:Count(category_id) 只会计算 category_id 不为空的记录。 为了与 NULL 进行比较,SQL 语法是“IS NULL”,而不是“= NULL”。
计算总使用量:
SELECT COUNT(1) FROM products WHERE category_id IS NULL ;
【讨论】:
【参考方案2】:只需像这样使用IS NULL
和category_id
SELECT COUNT(category_id)
FROM products
WHERE category_id IS NULL;
【讨论】:
【参考方案3】:COUNT 是一个聚合函数的例子,你需要使用 GROUP BY 试试这个:
SELECT COUNT(category_id) AS n FROM products WHERE category_id IS NULL GROUP BY category_id
【讨论】:
不,因为他只是选择计数,所以真的没有什么可以使用GROUP BY
on.....【参考方案4】:
试试这个:
SELECT COUNT(category_id) FROM products WHERE category_id IS NULL;
NULL值不能用'='操作符比较,所以用'IS'关键字代替'='
【讨论】:
【参考方案5】:在 where 子句中使用:category_id IS NULL
而不是 category_id= NULL
【讨论】:
以上是关于使用 WHERE 和 COUNT 在 sql 查询中返回错误值的主要内容,如果未能解决你的问题,请参考以下文章
选择 Count Where Values 大于 0 SQL Server
SQL/Impala:将多个查询(具有不同的 where 子句)合并为一个