Як підрахувати значення SQL NULL і NOT NULL у стовпці

Праця зі значеннями NULL в SQL є розповсюдженою проблемою для аналітиків даних та фахівців з баз даних. Це обумовлено тим, що робота з NULL може бути складною та заплутаною, що іноді призводить до фрустрації під час аналізу інформації.

Проте, важливо чітко розуміти, що саме представляють собою NULL значення та яке їхнє значення для отримання точних та вичерпних даних. У цьому матеріалі ми розглянемо SQL-команди та методи їх застосування для підрахунку значень NULL і NOT NULL.

Що таке значення SQL NULL?

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);

Ви також можете оновити NULL-значення у таблиці, використовуючи просту SQL-команду UPDATE. Ось приклад:

UPDATE Employee
SET FirstName="Esther"
WHERE Salary = 200000;

Щоб переглянути результат, виконайте запит:

SELECT * FROM Employee;

Коли значення SQL NULL є корисними?

NULL-значення знаходять застосування у різних ситуаціях в SQL:

  • Коли дані недоступні або невідомі на момент внесення.
  • Коли дані не мають відношення до певної організації. Наприклад, у опитуванні питання про наявність дітей може мати NULL-значення, якщо учасник не бажає відповідати.

Що таке умова SQL IS NULL?

SQL-команда IS NULL є важливим інструментом, який необхідно знати кожному розробнику. Вона використовується для перевірки на наявність NULL-значень і є найбільш ефективною при пошуку саме цих значень. Ця команда поверне всі рядки з NULL-значеннями у вказаному стовпці.

SELECT FirstName, LastName, PhoneNum
FROM Employee
WHERE PhoneNum IS NULL;

Запит поверне всі NULL-значення у стовпці PhoneNum.

Що таке умова SQL IS NOT NULL?

Команда SQL IS NOT NULL є протилежністю команді SQL IS NULL.

Вона використовується для пошуку НЕпорожніх значень (не NULL). Таким чином, вона повертає всі рядки в стовпці, що містять дані, і виключає всі NULL-значення, вказані у запиті.

SELECT FirstName, LastName, PhoneNum
FROM Employee
WHERE PhoneNum IS NOT NULL;

Цей запит поверне усі значення NOT NULL у стовпці PhoneNum.

Як підрахувати значення SQL NULL у стовпці?

Для підрахунку кількості значень використовується функція COUNT(). Вона корисна під час аналізу даних у таблицях SQL, а також при роботі з підзапитами та тимчасовими таблицями.

Щоб підрахувати кількість NULL-значень у стовпці PhoneNum, скористайтеся наступним запитом:

SELECT COUNT(*) AS [Total Number of NULL]
FROM Employee
WHERE PhoneNum IS NULL;

Результатом буде:

Як підрахувати значення NOT NULL у стовпці?

Використовуйте команду IS NOT NULL для підрахунку кількості значень, що не є NULL, у стовпці PhoneNum:

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 застосовані для класифікації NULL-значень у стовпці PhoneNum як 1. Ці значення додаються та зберігаються у новоствореному стовпці Number Of Null Values.

Підрахуйте значення NULL та продовжуйте аналіз

Хоч NULL-значення можуть здаватись складними, з ними досить легко працювати. Використовуючи COUNT(), ви можете підрахувати як NULL, так і NOT NULL значення всього за декілька рядків коду SQL.

Ознайомившись з цими командами SQL, ви зможете застосовувати їх у різних випадках та легко аналізувати необхідні дані.