TGViewer
Библиотека баз данных Библиотека баз данных @sql_lib · 10.2K subscribers
Post #361 2.7K
SQL хитрый совет для про 💡

Используй COUNT(*) FILTER вместо CASE WHEN — быстрее, чище и читаемее.

❌ Как делают обычно:


SELECT
COUNT(CASE WHEN status = 'success' THEN 1 END) AS success_cnt,
COUNT(CASE WHEN status = 'error' THEN 1 END) AS error_cnt
FROM events;

✅ Как делают профи:


Копировать код
SELECT
COUNT(*) FILTER (WHERE status = 'success') AS success_cnt,
COUNT(*) FILTER (WHERE status = 'error') AS error_cnt
FROM events;

Почему это важно:

- меньше вычислений внутри агрегаций
- оптимизатору проще строить план
- код короче и легче поддерживать
- особенно эффективно в аналитических запросах

Где работает:

- PostgreSQL
- SQLite (частично)
- DuckDB
- ClickHouse (через аналоги)

Мелочь, но именно из таких мелочей складывается SQL уровня senior.
  • 👍 10
  • ❤ 3
  • 🔥 1
More from @sql_lib
  1. Sep 17, 2026🔥 Mozilla выпустила 91-страничный отчёт о состоянии open-weight AI — и главный вывод: отк…
  2. Sep 8, 2026🐳 Почему localhost не работает в Docker Приложение подключалось к PostgreSQL на компьютер…
  3. Aug 16, 2026Полный инженерный курс по AI-агентам на русском: от tool calling до production Курс инжене…
  4. Jul 25, 2026Бесплатный учебник по геометрии на целый университетский курс 📐 Euclidean Plane and its R…
  5. Jul 23, 2026SQL-совет: сравнивайте `NULL` через `IS NOT DISTINCT FROM` Обычное сравнение ломается на N…
  6. Jul 23, 2026Команда GigaChat зовёт на вечеринку для AI-разработчиков и исследователей 🎉 29 июля, Сбер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →