select count(extract(month from birth_date)) ..
select count(birth_date) ..
accounts - это аккаунт пользователя. При регистрации пользователь выберет с помощью чекбокса какой тип аккаунта он хочет создать: individual (физическое лицо) или cargo_carriers (фирма перевозчик).Это явная ошибка. Должен существовать аккаунт пользователя. Должен существовать аккаунт фирмы. А вот пользователь может быть либо только самостоятельным пользователем, либо ещё и представителем фирмы. И в аккаунте фирмы аккаунт пользователя будет указан как аккаунт представителя.
Пытаюсь добавить json в БД. Добавляется это:
Об эквивалентности нужно говорить именно в контексте конкретной схемы данных, если мы решаем конкретную задачу, а не теоретизируем.
А где там разная логика? или я чего-то не вижу?
В чём принципиальная разница двух запросов?
Какой из запросов будет иметь большую деградацию по мере роста количества данных.
На одном объекте было такое
?? что тут непонятно. Функции передаются значения поля. Она считает, сколько из переданных в группе значений не являются 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).