NULL значения в агрегатных функциях

NULL значения в агрегатных функциях обрабатываются по особому - они игнорируются. Поэкспериментируем на таблице:

SELECT *
  FROM table1
value
1
2
3
NULL

Получим минимальное и максимальное значение:

SELECT min(value) as min_value,
       max(value) as max_value
  FROM table1
min_value max_value
1 3

Исключением является функция count(*), возвращающая общее количество строк в выборке. count(*) не принимает на вход никакого выражения, а просто возвращает количество строк в выборке, независимо от наличия NULL значений. Чтобы посчитать количество не NULL значений в столбце, необходимо воспользоваться функцией count(выражение). Например:

SELECT count(value) as count_value,
       count(*) as count_rows
  FROM table1
count_value count_rows
3 4

4.1 Агрегатные функции

4.3 Количество уникальных значений