Функция COUNT() считает количество не-NULL знfчений, а потому
select count(extract(month from birth_date)) ..
есть конструкция абсолютно бессмысленная. Если birth_date есть поле какого-то из типов даты-времени, не допускающего частичный компонент даты, то она полностью эквивалентна
Akina, вы говорите что проблема вероятно в том что в birth_date есть значения с которыми COUNT() не работает, а именно не не-null значения
т.е.
эту проблему должно быть возможно решить where birth_date is not null
?
Функция COUNT() считает количество не-NULL знfчений,
а можешь вот это перефразировать? кажется это на ельфийском
есть конструкция абсолютно бессмысленная. Если birth_date есть поле какого-то из типов даты-времени, не допускающего частичный компонент даты, то она полностью эквивалентна
а можешь вот это перефразировать? кажется это на ельфийском
?? что тут непонятно. Функции передаются значения поля. Она считает, сколько из переданных в группе значений не являются NULL. Всё.
Если birth_date содержит корректное не NULL значение, то extract(month from birth_date) тоже будет корректное не NULL. Если же поле содержит NULL, то и выражение даст NULL. А потому что count(extract(month from birth_date)), что count(birth_date) дадут абсолютно один и тот же результат.
Различаться они могут только в одном случае - если birth_date содержит НЕкорректное значение, причём это не NULL, и настройки не приводят к ошибке при вычислении функции (генерируется предупреждение). Вот тогда значение выражения будет NULL, и оно не будет посчитано, в отличие от непосредственно значения поля (оно пусть и кривое, но всё же не NULL).