SQL онлайн: компилятор и песочница для запросов
SQL онлайн позволяет запускать запросы прямо в браузере без установки локальной базы. В песочнице можно создавать таблицы, добавлять данные и проверять SQL-код на собственных примерах.
Обновлено · Команда SQL Arena
Что потренируете
- Создавать таблицы и тестовые данные
- Выполнять SQL-запросы в браузере
- Проверять JOIN и агрегаты на своих данных
- Сравнивать поведение разных SQL-диалектов
- Переходить от эксперимента к задачам с автопроверкой
Пример задачи в тренажёре
Так выглядит задача в SQL Arena: условие, редактор, результат и схема базы.
Есть таблица кампаний и связанные с ними конверсии. Для каждой кампании выведите её название в колонке name, число конверсий в conversions_count и суммарную выручку в total_revenue. Отсортируйте результат по выручке по убыванию, а при равной выручке — по названию кампании.
SELECT c.name, COUNT(cv.id) AS conversions_count, SUM(cv.revenue) AS total_revenue FROM campaigns c JOIN conversions cv ON cv.campaign_id = c.id GROUP BY c.id, c.name ORDER BY total_revenue DESC, c.name;
| # | name | conversions_count | total_revenue |
|---|---|---|---|
| 1 | Creator Week | 3 | 320 |
| 2 | Autumn Search | 2 | 200 |
| 3 | Winter Search | 1 | 200 |
| 4 | Product Digest | 1 | 110 |
Есть таблица кампаний и связанные с ними конверсии. Для каждой кампании выведите её название в колонке name, число конверсий в conversions_count и суммарную выручку в total_revenue. Отсортируйте результат по выручке по убыванию, а при равной выручке — по названию кампании.
SELECT c.name, COUNT(cv.id) AS conversions_count, SUM(cv.revenue) AS total_revenue FROM campaigns c JOIN conversions cv ON cv.campaign_id = c.id GROUP BY c.id, c.name ORDER BY total_revenue DESC, c.name;
Как запустить SQL-запрос онлайн: разбор примера
В песочнице сначала нужны данные, на которых можно проверить идею. Таблица campaigns хранит по одной строке на кампанию. У неё первичный ключ id. В conversions каждая строка — отдельная конверсия, а campaign_id ссылается на campaigns.id. Такая пара таблиц подходит, чтобы проверить сразу JOIN, COUNT, SUM, GROUP BY и сортировку.
Запрос начинается с JOIN. Условие cv.campaign_id = c.id связывает каждую конверсию с нужной кампанией. После соединения у одной кампании может оказаться несколько строк: например, у Creator Week их три. Поэтому COUNT(cv.id) считает число конверсий, а SUM(cv.revenue) складывает их выручку. GROUP BY c.id, c.name собирает соединённые строки обратно по кампаниям. id добавлен в группировку, чтобы каждая группа однозначно соответствовала конкретной записи campaigns, даже если когда-нибудь появятся кампании с одинаковым названием.
ORDER BY total_revenue DESC ставит кампании с большей выручкой выше. Но у Autumn Search и Winter Search сумма одинаковая — 200. Поэтому добавлен второй ключ сортировки c.name. Он делает порядок результата однозначным. Такой запрос удобно проверять именно в SQL-песочнице: можно поменять данные, добавить строку, изменить JOIN или агрегат и сразу посмотреть, как изменится результат.
SQL компилятор онлайн обычно используют как быстрый способ проверить запрос без настройки СУБД на компьютере. В SQL-песочнице можно создать тестовую схему, добавить строки через INSERT и затем выполнять SELECT, JOIN, GROUP BY и другие конструкции. Это также удобный SQL-редактор онлайн для небольших экспериментов: можно менять запрос и сразу смотреть результат. При этом важно учитывать диалект SQL: один и тот же код может отличаться в PostgreSQL, MySQL, ClickHouse и BigQuery.
SELECT c.name, COUNT(cv.id) AS conversions_count, SUM(cv.revenue) AS total_revenue FROM campaigns c JOIN conversions cv ON cv.campaign_id = c.id GROUP BY c.id, c.name ORDER BY total_revenue DESC, c.name;
| name | conversions_count | total_revenue |
|---|---|---|
| Creator Week | 3 | 320 |
| Autumn Search | 2 | 200 |
| Winter Search | 1 | 200 |
| Product Digest | 1 | 110 |
| Partner Launch | 2 | 100 |
Ошибки при работе с SQL онлайн и песочницей
Забыть условие JOIN
Если написать JOIN без корректной связи campaign_id = id, можно получить декартово произведение. Каждая кампания соединится со множеством чужих конверсий, а COUNT и SUM станут значительно больше реальных значений.
Считать строки до понимания уровня данных
После JOIN одна строка campaigns размножается по числу связанных записей conversions. Это нормально. Ошибка возникает, когда COUNT(*) воспринимают как число кампаний, хотя после соединения он фактически считает строки результата.
Не задавать стабильную сортировку
ORDER BY только по total_revenue не определяет порядок строк с одинаковой суммой. При ручной проверке это может казаться неважным, но для воспроизводимого результата лучше добавить второй критерий сортировки.
Задачи по теме в тренажёре
ПесочницаПесочница нужна, когда хочется выполнить SQL-запрос онлайн на собственных таблицах и быстро проверить гипотезу. Тренажёр решает другую задачу: там уже есть условие, схема и ожидаемый результат, а решение проверяется автоматически на скрытых данных. После экспериментов можно перейти к реальным задачам, например потренироваться сравнивать конверсию платформ, находить платформы с оплатами или агрегировать оплаченные события по городам. В SQL Arena есть 1 192 задачи, а 292 задачи доступны бесплатно без карты. Для PostgreSQL, MySQL, ClickHouse и BigQuery есть отдельные песочницы, поэтому один и тот же приём можно проверять в нужном диалекте.
Справочник по теме
Подробные статьи с синтаксисом и примерами в справочнике SQL Arena.
Частые вопросы
Как запустить SQL онлайн бесплатно?
Для этого нужна SQL-песочница или онлайн-компилятор, где можно создать таблицы и выполнить запрос прямо в браузере. Для базовых экспериментов достаточно задать структуру таблиц, добавить несколько строк и запустить SELECT.
Что такое SQL компилятор онлайн?
Так обычно называют веб-инструмент, который принимает SQL-запрос и выполняет его в подготовленной базе данных. Технически SQL не всегда «компилируется» в привычном смысле, но такой поисковый термин часто используется для онлайн-среды запуска запросов.
Что такое SQL песочница?
SQL-песочница — это изолированная среда для экспериментов с таблицами, данными и запросами. В ней можно безопасно проверять синтаксис и поведение запросов, не изменяя рабочую базу данных.
Можно ли выполнять SQL запросы онлайн?
Да. Онлайн-среда может выполнять SELECT, JOIN, агрегаты и другие поддерживаемые выбранным диалектом конструкции. Возможности зависят от того, какая СУБД используется внутри сервиса.
Чем SQL редактор онлайн отличается от обычного редактора кода?
Обычный редактор помогает написать текст запроса, но сам по себе не обязан выполнять его. SQL-редактор онлайн обычно связан с базой или песочницей, поэтому может сразу показать результат выполнения.
Попробуйте SQL онлайн на практических задачах
Создайте таблицы, вставьте тестовые данные и проверьте запрос в PostgreSQL, MySQL, ClickHouse или BigQuery. Всё работает в браузере.
Открыть песочницу