Проверка решения
Кнопка «Проверить решение» берёт текст из редактора и прогоняет его по всем вариантам данных задания в отдельной чистой базе. Живая база в этом не участвует.
Когда всё сошлось

Штрихов ровно столько, сколько вариантов было прогнано, — видно не слово «зачёт», а объём проверки. Решение сохраняется в solutions/<задание>.sql; это файл, который смотрит преподавательский CI.
Когда не сошлось

Первый упавший набор данных раскрывается сам: сверху — ожидаемый результат рядом с вашим, под ним — причины расхождения человеческим языком, и только потом сами данные варианта. Остальные упавшие варианты раскрываются по кнопке.

Это не подсказка «как надо» — это данные, на которых стало видно расхождение. Ожидаемый результат скрытого варианта открывается только после того, как решение на нём упало; эталонное решение остаётся закрытым.
Если задание проверяет порядок строк, сравнение позиционное: строка, которая в ответе есть, но стоит не на своём месте, помечается отдельно от пропущенной и лишней — и в тексте ошибки сказано, с какой позиции порядок разошёлся.
Ошибки формулируются словами, а не техническими кодами: «строки верные, а порядок — нет», «не тот состав колонок: не хватает …», «не то число строк: 7» вместо «hash mismatch». Ошибку самой СУБД показываем дословно — она точная и та же, что в любом клиенте, — но карточкой с заголовком.
Почему вариантов так много
Один набор строк ничего не доказывает. Запрос без нужного условия пройдёт, если в таблице и так нет лишних строк; запрос с LIMIT 1 пройдёт, если подходящая строка одна. Поэтому варианты специально включают крайности: пусто, ровно одна строка, только один класс записей, всё сразу.
Три варианта открыты во вкладке «Примеры данных» — по ним удобно понять условие. Остальные скрыты. Вариант, на котором решение упало, можно загрузить в свою живую базу кнопкой «В мою базу» и отладить запрос прямо на этих данных.
Типичные причины расхождения
| Симптом | Что обычно не так |
|---|---|
| сходится на примерах, падает на скрытых | не обработан крайний случай: пустой результат, одна строка, NULL в колонке |
| расходятся имена колонок | не задан псевдоним AS, которого требует условие |
| расходится порядок строк | нет ORDER BY, а условие требует порядка |
| «конструкции SQL» не пройдены | использована запрещённая конструкция или нет обязательной — они перечислены в блоке «что должно получиться» |
Числа сравниваются с точностью, объявленной в задании, а не побайтово: 40 и 40.00 — это одно и то же значение, а не расхождение.