Функция преобразования SQL-запросов открывает возможности для выполнения операций, которые не предусмотрены стандартными инструментами.
Допустим, вы хотите загрузить две таблицы из разных источников, и с помощью SQL-запроса объединить их и выполнить расчеты на основе данных обеих таблиц. Вот как это можно сделать:
Сначала начнем загружать таблицу из базы данных с помощью JDBC, и после заполнения всех полей запроса, нажмем Преобразовать данные в нижней части окна, чтобы перейти в модуль преобразования данных:
Как видно, наша таблица загрузилась в модуль преобразований данных:
Теперь загрузим вторую таблицу, теперь уже из CSV-файла. Для этого нажмем Данные > Новый источник данных и выберем источником CSV-файл:
На странице предпросмотра нажмём кнопку Добавить. Таблица появится в панели Запросы:
Теперь, имея данные двух таблиц, мы можем воспользоваться SQL-запросом, который произведет объединение таблиц и рассчитает информацию об общем доходе, средней сумме дохода и количестве продаж для каждого уникального продукта, отсортированную по общему доходу. Для этого необходимо сделать следующее:
Нажать кнопку SQL-преобразование в панели инструментов:
В открывшемся диалоге введите название преобразования, SQL-запрос и нажмите Добавить преобразование:
Результат вычислений отобразится в области предварительного просмотра:
Нажмите Добавить запрос, чтобы добавить результирующую таблицу в модель данных. Таблица отобразится в списке доступных таблиц:
вас есть две таблицы - Продажи и Список продуктов, которые таблица Продажи с данными о продажах по нескольким странам, и вы хотите отобразить в отдельных колонках данные о всех проданных товарах и информацию об общей прибыли. При этом вы хотите сгруппировать данные по странам и отобразить их в порядке убывания. Для этого вы можете сделать следующее:
Нажмите кнопку SQL-преобразование:
В открывшемся диалоге укажите название преобразования и введите SQL-запрос. В нашем примере мы будем использовать следующий запрос:
SELECT
"Country",
SUM("Units Sold") AS "Total_Units_Sold",
SUM("Profit") AS "Total_Profit"
FROM
{Продажи}
GROUP BY
"Country"
ORDER BY
"Total_Profit" DESC;
где
SELECT "Country", SUM("Units Sold") AS "Total_Units_Sold", SUM("Profit") AS "Total_Profit" – извлекает данные по странам (Country), а также производит суммирование общего количества проданных единиц (Units Sold) и общей прибыли (Profit). Суммарные значения названы соответственно: Total_Units_Sold и Total_Profit.
FROM {Продажи} – указывает, что данные берутся из таблицы с название "Продажи".
GROUP BY "Country" – группирует данные по странам, чтобы суммировать данные отдельно для каждой страны.
ORDER BY "Total_Profit" DESC – упорядочивает результаты по общей прибыли в порядке убывания, благодаря чему страны с наибольшей прибылью оказываются вверху списка.
Нажмите Добавить преобразование. В итоговой таблице отобразятся результаты трансформации:
Если результат вас устраивает и никакие трансформации больше не нужны, нажмите кнопку Добавить запрос, чтобы добавить преобразованную таблицу в модель данных:
Если потребуется выполнить дополнительные преобразования, нажмите напротив названия таблицы и выберите пункт Изменить запрос в выпадающем меню. Откроется окно преобразований данных, где вы сможете внести необходимые изменения:
Если изменятся исходные данные, то всё, что было настроено в процессе преобразования, также обновится.