练习 - 使用 lookup 运算符合并表结果
上一个练习使用了 join
运算符来查找每种产品的总销售额。 本练习将使用 lookup
运算符查找各个国家/地区的总销售额。
使用 lookup
运算符
你的销售团队想知道公司在各个国家/地区的总销售额。 你可使用 join
运算符来获取客户和产品信息。 但是,使用 lookup
运算符获取此信息时,这种查询的性能最佳。
回想一下,lookup
运算符使用维度表中的数据来扩充事实数据表。 这有点像阅读一本图书(事实数据表)并在字典中(维度表)查阅不认识的字词。
对于此查询,可以从 SalesFact 表开始,使用 lookup
运算符获取 Customer 数据并将其添加到结果表中。
在以下过程中,你将分阶段生成查询,以便更好地了解使用 lookup
运算符的结果。
运行以下查询,从 SalesFact 表和 Customers 表中获取 10 个匹配的任意行。
SalesFact | lookup Customers on CustomerKey | take 10
查看生成的列表。 请注意,生成的表包含 SalesFact 表中的列,后跟 Customers 表中的匹配列。
运行以下查询获取每个国家/地区的总销售额。
SalesFact | lookup Customers on CustomerKey | summarize TotalSales = count() by RegionCountryName | order by TotalSales desc
结果应如下图所示:
查看生成的列表。 请注意,销售额最高的是美国。 尝试修改查询以按州显示美国总销售额。
上一个单元使用了 rightouter join
按产品类别获取总销售额。 该查询运行时间为 0.834 秒。 现在,请编写一个查询,以使用 lookup
运算符获取相同的结果,然后比较执行时间。
运行以下查询。
SalesFact | lookup Products on ProductKey | summarize TotalSales = count() by ProductCategoryName | order by TotalSales desc
结果应如下图所示:
请注意,得到的结果相同,但执行时间为 0.398 秒。 执行时间更短是因为
lookup
运算符针对此类型的查询进行了优化。