# Запрос данных в режиме SQL

В панели «Запрос данных» переключитесь в режим SQL, напишите и выполните запрос, а затем используйте полученные результаты напрямую для построения и отображения диаграмм.

![20251027075805](https://static-docs.nocobase.com/20251027075805.png)

## Написание SQL-запросов
- В панели «Запрос данных» выберите режим SQL.
- Введите SQL-запрос и нажмите «Выполнить запрос».
- Поддерживаются сложные запросы, включая многотабличные JOIN и VIEW.

Пример: сумма заказа по месяцам
```sql
SELECT 
  TO_CHAR(order_date, 'YYYY-MM') as mon,
  SUM(total_amount) AS total
FROM "order"
GROUP BY mon
ORDER BY mon ASC
LIMIT 100;
```

## Просмотр результатов
- Нажмите «Просмотреть данные», чтобы открыть панель предварительного просмотра результатов.

![20251027080014](https://static-docs.nocobase.com/20251027080014.png)

Данные поддерживают постраничное отображение; вы можете переключаться между режимами «Таблица» и «JSON», чтобы проверить имена и типы столбцов.
![20251027080100](https://static-docs.nocobase.com/20251027080100.png)

## Сопоставление полей
- В настройках «Параметры диаграммы» сопоставьте поля на основе столбцов результатов запроса.
- По умолчанию первый столбец используется как измерение (ось X или категория), а второй — как показатель (ось Y или значение). Поэтому обратите внимание на порядок столбцов в SQL-запросе:

```sql
SELECT 
  TO_CHAR(order_date, 'YYYY-MM') as mon, -- поле измерения в первом столбце
  SUM(total_amount) AS total -- поле показателя далее
```

![clipboard-image-1761524022](https://static-docs.nocobase.com/clipboard-image-1761524022.png)

## Использование контекстных переменных
Нажмите кнопку `x` в правом верхнем углу SQL-редактора, чтобы выбрать контекстные переменные.

![20251027081752](https://static-docs.nocobase.com/20251027081752.png)

После подтверждения выражение переменной будет вставлено в позицию курсора (или заменит выделенный текст) в SQL-запросе.

Например, `{{ ctx.user.createdAt }}`. Обратите внимание, что не нужно добавлять дополнительные кавычки.

![20251027081957](https://static-docs.nocobase.com/20251027081957.png)

## Дополнительные примеры
Дополнительные примеры использования вы можете найти в [демо-приложении](https://demo3.sg.nocobase.com/admin/5xrop8s0bui) NocoBase.

**Рекомендации:**
- Стабилизируйте имена столбцов перед сопоставлением с диаграммами, чтобы избежать ошибок в дальнейшем.
- На этапе отладки используйте `LIMIT` для уменьшения количества возвращаемых строк и ускорения предварительного просмотра.

## Предварительный просмотр, сохранение и откат
- Нажмите «Выполнить запрос», чтобы запросить данные и обновить предварительный просмотр диаграммы.
- Нажмите «Сохранить», чтобы сохранить текущий SQL-запрос и связанные с ним настройки в базу данных.
- Нажмите «Отмена», чтобы вернуться к последнему сохраненному состоянию и отменить текущие несохраненные изменения.