SQL Middle EXPLAIN и оптимизация спрашивают часто обновлено
Перепиши фильтр по месяцу под индекс
Условие
На orders.created_at есть индекс, но запрос ниже его не использует. Перепиши условие так, чтобы индекс по created_at мог работать, а результат не изменился.
Колонки: id, created_at. Порядок строк не важен.
SELECT id, created_at
FROM orders
WHERE to_char(created_at, 'YYYY-MM') = '2025-06';
Как подойти
Подсказки: 2
- Колонка в условии не должна быть внутри функции.
- Запиши месяц как диапазон дат.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Перепиши OFFSET-пагинацию на keyset
Следующий вопрос
Оценка 2 тысячи, факт 10 тысяч: зависимые колонки