Русский
Открыть в Telegram

Пост Не используйте ELSE 0 вместе с COUNT и CASE

8 марта 2026
P
Python Portal
Не используйте ELSE 0 вместе с COUNT и CASE Использование ELSE 0 - очень частая ошибка у новичков, когда они комбинируют функцию COUNT с выражением CASE. Обычно это происходит из-за непонимания того, как именно COUNT работает при применении к столбцу. Когда используется COUNT(column), функция считает все значения, которые не равны NULL, включая нули. Это значит, что если в выражении CASE указан ELSE 0, каждая строка, не попавшая под условие, превращается в значение 0. В результате такие строки тоже попадают в подсчёт. Вот наивный пример: sql id="g4suvd" SELECT Department, COUNT(CASE WHEN Status = 'Active' THEN EmployeeID ELSE 0 END) AS ActiveEmployees FROM Employees GROUP BY Department; В этом запросе каждая строка, которая не удовлетворяет условию, превращается в 0, а это валидное значение, поэтому оно тоже учитывается в COUNT. Из-за этого результат может получиться вводящим в заблуждение. Лучше всего вообще убрать ELSE. Когда ветка ELSE опущена, выражение CASE возвращает NULL для строк, которые не соответствуют условию. А так как COUNT() игнорирует NULL, будут посчитаны только строки, которые действительно удовлетворяют условию. Вот правильный вариант: sql id="vxa5np" SELECT Department, COUNT(CASE WHEN Status = 'Active' THEN EmployeeID END) AS ActiveEmployees FROM Employees GROUP BY Department; В этой версии строки, не подходящие под условие, возвращают NULL, и COUNT() естественным образом исключает их из подсчёта. В итоге запрос получается чище, а подсчёт корректно отражает только те значения, которые реально соответствуют условию. 👉 @PythonPortal
25 · 6.8K ·

Рядом в ленте

PPython PortalХорошо там, где нас нет 🤣🤣🤣 👉 @PythonPortalPPython PortalOpenAI опубликовала работу, в которой доказывается, что ChatGPT будет выдумывать всегда. 😖 Не иногда. Не до следующего обновления. Всегда. Они доказали это мате
это сообщение
PPython Portal🌧🌧🌧 👉 @PythonPortalPPython PortalИсследователи из Berkeley 8 месяцев работали внутри техкомпании и наблюдали, как сотрудники используют ИИ. Обещание было простым: ИИ сэкономит вам время. Делайт
PPython PortalPython Portal@PythonPortal · канал · Технологии
51 046подписчиков4 165средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем