Упражнение. Объединение результатов таблицы с помощью оператора подстановки
В предыдущем упражнении оператор использовался join
для поиска общего объема продаж на продукт. В этом упражнении оператор используется lookup
для поиска общего объема продаж в каждой стране или регионе.
Использовать оператор lookup
.
Ваша команда по продажам хочет знать общий объем продаж компании на страну или регион. Вы можете использовать оператор для получения сведений join
о клиенте и продукте. Однако этот тип запроса лучше всего выполняется при использовании lookup
оператора для получения этих сведений.
Помните, что lookup
оператор дополняет таблицу фактов данными из таблицы измерений . Это немного похоже на чтение книги (таблица фактов) и поиск неизвестных слов в словаре (таблица измерений).
Для этого запроса вы начинаете с таблицы SalesFact и используете lookup
оператор, чтобы получить данные клиента и добавить его в результирующий таблицу.
В следующей процедуре вы создаете запрос на этапах, чтобы лучше понять результат использования lookup
оператора.
Выполните следующий запрос, чтобы получить 10 совпадающих произвольных строк из таблицы SalesFact и таблицы Customers .
SalesFact | lookup Customers on CustomerKey | take 10
Взгляните на итоговый перечень. Обратите внимание, что результирующая таблица содержит столбцы из таблицы SalesFact , за которой следует сопоставление столбцов из таблицы Customers .
Выполните следующий запрос, чтобы получить общий объем продаж в каждой стране или регионе.
SalesFact | lookup Customers on CustomerKey | summarize TotalSales = count() by RegionCountryName | order by TotalSales desc
Результаты должны выглядеть следующим образом:
Взгляните на итоговый перечень. Обратите внимание, что первые продажи находятся в США. Попробуйте изменить запрос, чтобы отобразить общее количество продаж в США по состоянию.
В предыдущем уроке вы использовали правый элементjoin
для получения общего объема продаж по категориям продуктов. Для выполнения этого запроса потребовалось 0,834 секунды. Теперь напишите запрос, чтобы получить тот же результат с помощью lookup
оператора, а затем сравните время выполнения.
Выполните следующий запрос.
SalesFact | lookup Products on ProductKey | summarize TotalSales = count() by ProductCategoryName | order by TotalSales desc
Результаты должны выглядеть следующим образом:
Обратите внимание, что вы получаете те же результаты, но время выполнения — 0,398 секунды. Более быстрое время выполнения обусловлено тем, что
lookup
оператор оптимизирован для этого типа запроса.