# Запрос данных

Панель настройки диаграмм состоит из трех разделов: Запрос данных, Опции диаграммы и Интерактивные события, а также кнопок Отмена, Предпросмотр и Сохранить в нижней части.

Давайте сначала рассмотрим панель «Запрос данных», чтобы понять два режима запроса (Builder/SQL) и их общие функции.

## Структура панели
![clipboard-image-1761466636](https://static-docs.nocobase.com/clipboard-image-1761466636.png)

> Совет: Чтобы упростить настройку текущего содержимого, вы можете сначала свернуть другие панели.

В верхней части находится панель действий:
- Режим: Builder (графический, простой и удобный) / SQL (ручной ввод запросов, более гибкий).
- Выполнить запрос: Нажмите, чтобы выполнить запрос данных.
- Просмотреть результат: Открывает панель с результатами данных, где вы можете переключаться между видами Таблица/JSON. Повторное нажатие сворачивает панель.

Сверху вниз расположены следующие элементы:
- Источник данных и коллекция: Обязательно. Выберите источник данных и коллекцию.
- Метрики (Measures): Обязательно. Числовые поля для отображения.
- Измерения (Dimensions): Группировка по полям (например, дата, категория, регион).
- Фильтр: Установите условия фильтрации (например, =, ≠, >, <, содержит, диапазон). Несколько условий можно комбинировать.
- Сортировка: Выберите поле для сортировки и порядок (по возрастанию/убыванию).
- Пагинация: Управление диапазоном данных и порядком возврата.

## Режим Builder

### Выбор источника данных и коллекции
- На панели «Запрос данных» установите режим «Builder».
- Выберите источник данных и коллекцию. Если коллекция недоступна для выбора или пуста, сначала проверьте разрешения и убедитесь, что она была создана.

### Настройка метрик (Measures)
- Выберите одно или несколько числовых полей и установите агрегацию: `Sum`, `Count`, `Avg`, `Max`, `Min`.
- Типичные сценарии использования: `Count` для подсчета записей, `Sum` для расчета общей суммы.

### Настройка измерений (Dimensions)
- Выберите одно или несколько полей в качестве измерений для группировки.
- Поля даты и времени можно форматировать (например, `YYYY-MM`, `YYYY-MM-DD`) для удобства группировки по месяцам или дням.

### Фильтрация, сортировка и пагинация
- Фильтр: Добавьте условия (например, =, ≠, содержит, диапазон). Несколько условий можно комбинировать.
- Сортировка: Выберите поле и порядок сортировки (по возрастанию/убыванию).
- Пагинация: Установите `Limit` и `Offset` для управления количеством возвращаемых строк. Рекомендуется устанавливать небольшое значение `Limit` при отладке.

### Выполнение запроса и просмотр результата
- Нажмите «Выполнить запрос». После получения результата переключитесь между `Table / JSON` в разделе «Просмотреть результат», чтобы проверить столбцы и значения.
- Перед сопоставлением полей диаграммы убедитесь в правильности имен и типов столбцов здесь, чтобы избежать пустой диаграммы или ошибок в дальнейшем.

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

### Дальнейшее сопоставление полей

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

## Режим SQL

### Написание запроса
- Переключитесь в режим «SQL», введите ваш запрос и нажмите «Выполнить запрос».
- Пример (общая сумма заказа по дате):
```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;
```

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

### Выполнение запроса и просмотр результата

- Нажмите «Выполнить запрос». После получения результата переключитесь между `Table / JSON` в разделе «Просмотреть результат», чтобы проверить столбцы и значения.
- Перед сопоставлением полей диаграммы убедитесь в правильности имен и типов столбцов здесь, чтобы избежать пустой диаграммы или ошибок в дальнейшем.

### Дальнейшее сопоставление полей

В дальнейшем, при настройке «Опций диаграммы», вы будете сопоставлять поля на основе столбцов из результата запроса.

> [!TIP]
> Дополнительную информацию о режиме SQL см. в разделе Расширенное использование — Запрос данных в режиме SQL.