如何计算列中 SQL NULL 和 NOT NULL 值的数量
在数据分析过程中处理 NULL 值至关重要。了解如何计算列中的空值和非空值。
在 SQL 中使用 NULL 值是每个数据分析师和数据库专业人员面临的常见挑战。这是特别的,因为处理 NULL 可能会让人不知所措且令人困惑,从而导致数据分析过程中的挫败感。
但是,了解这些 NULL 值是什么以及它们对于您获得准确和全面的数据见解意味着什么非常重要。本文将探讨 SQL 命令以及如何使用它们来计算 NULL 和 NOT NULL 值。
什么是 SQL NULL 值?
NULL 值意味着没有值,不是零或空格。
因此,传统的比较运算符(如 =、<、> 和 <> 等)不能用于它。然而,如果使用,结果将是未知的。
将 NULL 值视为在记录创建期间留空的字段。您可以创建表并插入新列,而无需添加值。因此该字段将为 NULL 值。 NULL 值也可以插入到任何数据类型的列中。
为了演示这一点,您应该使用以下语法创建一个新的 SQL 表:
CREATE TABLE Employee (
FirstName VARCHAR(50),
LastName VARCHAR(50),
PhoneNum VARCHAR(15),
Salary FLOAT
);
INSERT INTO Employee (FirstName, LastName, PhoneNum, Salary)
VALUES
('Maxwell', 'Ayomide', '812-345-6789', 150000.00),
('David', 'Tosin', NULL, 450000.00),
('Eben', 'Teniola', '912-345-6789', 590000.00),
('Kenneth', 'Olisa', '809-456-8732', NULL),
('Esther', 'Oge', NULL, NULL);
您还可以使用适合初学者的 SQL 命令 UPDATE 语句来更新表中的 NULL 值。为此,请使用以下语法。
UPDATE Employee
SET FirstName = 'Esther'
WHERE Salary = 200000;
要查看结果,请运行:
SELECT * FROM Employee;
SQL NULL 值什么时候有用?
NULL 值可以在 SQL 中的各种情况下使用:
- 当数据输入时数据不可用或未知时。
- 当数据不适用于相关实体时。例如,在一项调查中,要求参与者勾选是否有孩子的问题可能会有一些 NULL 值。
什么是 SQL IS NULL 条件?
SQL IS NULL 命令是每个程序员都应该知道的重要 SQL 命令之一。该命令用于测试 NULL 值,最好在查找 NULL 值时使用。此命令将返回查询中指定的列中的所有 NULL 行。
SELECT FirstName, LastName, PhoneNum
FROM Employee
WHERE PhoneNum IS NULL;
此查询将返回 PhoneNum 列中的所有 NULL 值。
什么是 SQL IS NOT NULL 条件?
SQL IS NOT NULL 命令与 SQL IS NULL 命令相反。
此命令测试非空值(NOT NULL 值)。因此,它将始终返回具有值的列中的所有行,并排除查询中指定的列中的所有 NULL 值。
SELECT FirstName, LastName, PhoneNum
FROM Employee
WHERE PhoneNum IS NOT NULL;
此查询将返回 PhoneNum 列中的所有 NOT NULL 值。
如何计算列中的 SQL NULL 值?
COUNT()命令用于计数。在分析 SQL 表中的数据以及使用 SQL 子查询和临时表时,该命令会派上用场。
使用此查询可计算 PhoneNum 列中 NULL 值的数量。
SELECT COUNT(*) AS [Total Number of NULL]
FROM Employee
WHERE PhoneNum IS NULL
这将返回:
如何计算列中的 NOT NULL 值?
使用 NOT NULL 命令计算 PhoneNum 列中非 NULL 值的数量。
SELECT COUNT(PhoneNum) AS [Total Number of Non-NULL Values]
FROM Employee
WHERE PhoneNum IS NOT NULL
这将返回:
您还可以使用此查询将结果放入表中。
SELECT SUM(CASE WHEN PhoneNum is null THEN 1 ELSE 0 END)
AS [Number Of Null Values],
COUNT(PhoneNum) AS [Number Of Non-Null Values]
FROM Employee
在此查询中,CASE 和 IS NULL 命令用于将 PhoneNum 列中的 NULL 分类为 1。此值已添加并保留在新形成的 Null Values 数中> 列。
计算 NULL 值并继续分析
NULL 值可能具有压倒性的作用。他们实际上很容易合作。使用 COUNT(),您只需几行 SQL 代码即可计算 NULL 和非 NULL 值。
一旦了解了 SQL 命令,您就可以将它们应用于各种用例并轻松分析数据。