Заявки со статусом NULL не попали в выборку по условию неравенства
Вы проверяете, сколько заявок ещё не оплачено:
SELECT count(*) FROM applications WHERE status <> 'paid';
Запрос вернул 480. При этом вы точно знаете, что в таблице есть заявки, у которых поле status пустое — там записан NULL, и в выборку они не попали.
Почему так вышло?
- NULL хранится в базе как пустая строка, поэтому условие нужно писать в виде status <> '' — тогда такие заявки попадут в выборку
- Условие корректно, значит заявок со статусом NULL в таблице на самом деле нет
- Оператор <> в PostgreSQL работает иначе, для таких проверок нужно писать !=
- Сравнение с NULL не даёт истину, строка не проходит условие; нужно добавить OR status IS NULL
