Задача и предварительные условия
Рассчитайте выручку каждой продажи и подготовьте сводную таблицу по регионам.
В примере используются демонстрационные данные и настройки. Проверьте ожидаемый результат в своей среде до подключения рабочих получателей. Идентификаторы demo_* условны: выберите собственные учебные подключения или источники в редакторе. JSON ниже показывает структуру блоков и связей, а не готовый архив потока для переноса.
Учебные входные данные
sales.csv
Region;Qty;Price
North;2;10
North;3;5
South;4;7.5
Блоки, связи и точные настройки
Схема примера 07: блоков — 4, связей — 3. Идентификаторы узлов и порты настроенной схемы сохранены.
Добавьте перечисленные блоки в конструкторе, откройте свойства каждого и задайте эти значения. Имена demo_* обозначают учебные источники и подключения.
| Блок | Настройка |
|---|---|
| 1 Файл src |
|
| 2 Вычисляемые поля calc |
|
| 3 Группировка group |
|
| 4 Экспорт данных out |
|
Связи портов
- src
out→ calcin - calc
out→ groupin - group
out→ outin
Полная конфигурация схемы в JSON
{
"version": 3,
"nodes": [
{
"id": "src",
"type": "file",
"label": "src",
"config": {
"role": "source",
"source_id": "demo_sales_calc",
"options": {
"sheet": "CSV",
"range": "A1:C4",
"header": true,
"delimiter": ";"
}
}
},
{
"id": "calc",
"type": "calculation",
"label": "calc",
"config": {
"fields": [
{
"name": "Revenue",
"expression": "round(number(field(\"Qty\")) * number(field(\"Price\")), 2)"
}
],
"decimal": "."
}
},
{
"id": "group",
"type": "group",
"label": "group",
"config": {
"keys": [
"Region"
],
"aggregates": [
{
"column": "Revenue",
"op": "sum",
"name": "RevenueTotal"
},
{
"column": "Revenue",
"op": "count",
"name": "Orders"
}
],
"decimal": "."
}
},
{
"id": "out",
"type": "export",
"label": "out",
"config": {
"format": "xlsx",
"filename": "regional_sales",
"destination": "download",
"delimiter": ";",
"timezone": "Europe/Kyiv"
}
}
],
"edges": [
{
"source": "src",
"target": "calc",
"source_port": "out",
"target_port": "in"
},
{
"source": "calc",
"target": "group",
"source_port": "out",
"target_port": "in"
},
{
"source": "group",
"target": "out",
"source_port": "out",
"target_port": "in"
}
]
}Ожидаемый результат
| Region | RevenueTotal | Orders |
|---|---|---|
| North | 35 | 2 |
| South | 30 | 1 |
Рассчитанные значения Revenue до группировки — 20, 15 и 30. Общая выручка — 65.
Запуск и проверка
- Проверьте десятичный разделитель: 7.5 использует decimal=".".
- Создайте вычисляемое поле Revenue, затем сгруппируйте по Region.
- Запустите и проверьте суммы 35/30 и количества 2/1; не сравнивайте только общее количество строк.
Частые ошибки
- Формула не выполняет произвольный код: функции и операции должны быть из справочника.
- Для имён с пробелами используйте field("Field name").
- Добавление Qty или Price в ключи группировки создаёт лишние группы вместо итога региона.