カラムの SQL NULL 値と NOT NULL 値をカウントする方法

SQL の NULL 値を扱うことは、すべてのデータアナリストやデータベースの専門家が直面するよくある課題です。NULL 値の扱いは複雑で混乱を招くことが多く、データ分析中にイライラすることがあります。

しかし、これらの NULL 値が何を意味し、正確で包括的なデータの洞察を得るためにどのような意味を持つのかを理解することが重要です。この記事では、SQL コマンドとそれを使用して NULL 値と NOT NULL 値をカウントする方法について説明します。

SQL NULL 値とは

NULL 値とは、値がないことを意味し、ゼロやスペースではありません。

そのため、=、<、>、<> などの従来の比較演算子は使用できません。ただし、使用すると、結果は UNKNOWN になります。

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 値はいつ役立つのか

SQL では、さまざまな状況で NULL 値を使用できます:

  • データ入力時にデータが利用できないまたは不明な場合。
  • データが問題のエンティティに適用されない場合。たとえば、アンケートで参加者に子供がいる場合はチェックを入れるという質問があると、NULL 値がいくつかある可能性があります。

SQL IS NULL 条件とは

SQL IS NULL コマンドは、すべてのプログラマーが知っておくべき重要な SQL コマンドの 1 つです。このコマンドは 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列の NOT 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 として分類しました。この値は追加され、新しく形成されたNumber Of Null Values列に保持されました。

NULL 値をカウントして分析を続行する

NULL 値は非常にやっかいな存在ですが、実際には扱い方は簡単です。COUNT() を使用すれば、ほんの数行の SQL コードで NULL 値と NOT NULL 値をカウントすることができます。

SQL コマンドがわかれば、さまざまなユースケースに適用して、データを楽に分析することができます。