В уроках темы «Данные и логи: SQL, терминал, Kibana» под текстом стоит SQL-редактор. Запросы выполняются в настоящей базе PostgreSQL: для вас поднимается отдельная учебная база, и вы работаете с ней, как с базой на стенде.
Как выглядит
- Задача — что нужно получить. В одном уроке бывает несколько задач подряд.
- Схема — какие таблицы и колонки есть в базе.
- Поле для запроса — пишете SQL.
- Кнопка «Выполнить» — запускает запрос, ниже появляется таблица результата или текст ошибки.
- Кнопка «Проверить» — отправляет запрос на проверку.
Пока база запускается, на кнопке написано «Запускаю песочницу…» — подождите несколько секунд.
Какие таблицы доступны
Схема зависит от урока и показана рядом с редактором. В большинстве заданий это база интернет-магазина: users, products, orders, order_items, carts, payments. Обратите внимание: сумма заказа в orders лежит в колонке total.
Список таблиц можно посмотреть и запросом:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public';
А колонки конкретной таблицы — так:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'orders';
Как платформа проверяет
Ваш запрос и эталонный выполняются на одних и тех же данных, и сравниваются наборы строк:
- порядок строк не важен, если задача не просит сортировку;
- имена колонок не важны, можно использовать псевдонимы (
AS); - сами значения должны совпасть: лишние или недостающие строки, дубликаты там, где нужен
DISTINCT, — ошибка.
Запрос, который не выполнился, не засчитывается.
Типичные ошибки
- Агрегат без
GROUP BY— PostgreSQL выдаст ошибку, если вSELECTесть и агрегат, и обычная колонка без группировки. COUNT(*)иCOUNT(колонка)— второй не считает строки, где в колонкеNULL.JOINбез условия — получится декартово произведение: каждая строка с каждой.- Сравнение с
NULLчерез=— нужноIS NULL. - Строки в двойных кавычках — в PostgreSQL строковые значения пишут в одинарных:
'paid'. Двойные кавычки — для имён колонок и таблиц.
Если что-то не работает
- Сверьтесь со схемой: правильные ли имена таблиц и колонок.
- Выполните запрос без
WHEREи посмотрите, что вообще лежит в данных. - Упростите запрос до минимума и добавляйте условия по одному, пока не найдёте, где ломается.
- Если песочница не запускается, обновите страницу; если не помогает — сообщите о проблеме (см. «Решение проблем»).