SQL Junior EXPLAIN и оптимизация обновлено
Перепиши фильтр из HAVING в WHERE
Условие
Запрос считает число заказов по статусам, кроме отменённых, но фильтрует уже после группировки. Перенеси условие туда, где оно отсекает строки до группировки. Результат не должен измениться.
Колонки: status, cnt. Порядок строк не важен.
SELECT status, COUNT(*) AS cnt
FROM orders
GROUP BY status
HAVING status <> 'cancelled';
Как подойти
Подсказки: 1
- Условие без агрегата можно проверить до группировки.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Перепиши DISTINCT после JOIN на EXISTS
Следующий вопрос
Перепиши NOT IN, который вернул пусто