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 |