Вступить в клуб →
средняявопросPython и SQL для подготовки данных

Счётчик заявок по условию status != 'approved' занижает число

Вы считаете, сколько заявок не было одобрено:

SELECT count(*) FROM applications WHERE status <> 'approved'

В таблице 100000 заявок, одобренных 40000, но запрос вернул 52000, а не 60000. В логах видно, что у части заявок статус ещё не проставлен. Что произошло?

  • Строки со status IS NULL не проходят условие, потому что сравнение с NULL не даёт истину
  • count(*) не считает строки, в которых есть хотя бы одно NULL-поле
  • Оператор <> сравнивает строки побайтово и пропускает значения другого регистра
  • База выкинула дубликаты заявок, потому что count(*) работает как count(DISTINCT)

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела