Раньше я постоянно забывала или ленилась тестировать свои SQL-запросы, и это приводило к ошибкам в отчетах. Я обратилась с этой проблемой к руководителю, и мы придумали использовать чек-лист, чтобы избежать ошибок. Теперь каждый мой запрос проходит проверку по этому списку, в результате количество багов сильно уменьшилось. Делюсь им с вами — возможно, он тоже поможет вам избежать ошибок при написании SQL запросов. ✅ Корректность запроса ◻️ Запрос выполняется без синтаксических ошибок. ◻️ Отсутствуют дублирующие данные. ◻️ Запрос возвращает корректные данные. ◻️ Фильтры в запросе использованы правильно, обеспечивая нужный набор данных. ◻️ Отсутствуют персональные данные (кроме оговоренных случаев). ◻️ Если существует аналогичная витрина и не требуются сложные расчеты, используйте её вместо создания новой. ⚙️ Оптимизация ◻️Если запрос выполняется долго (более 5 секунд), создана специальная таблица для обновления данных, если это необходимо. ◻️ Большой CTE разбит на отдельные запросы с созданием физических таблиц. ◻️ Применяется фильтрация данных, если это уместно. ◻️ Используются индексы, если это возможно, правильно выбраны движки для таблиц (актуально для ClickHouse). 🔍 Читаемость ◻️ В запросе присутствуют комментарии для сложных частей. ◻️ Большая вложенность подзапросов переведена в CTE. ◻️ Запрос отформатирован для легкости чтения (отступы, выравнивание). ⚡️ Эффективность ◻️ Запрос выполняется за адекватное время (определите, что это значит для вашей компании). ◻️ Агрегатные функции и группировки используются только при необходимости.