透视表
数据透视表目前仅支持在查询构建器中创建的问题。像 MongoDB 这样的 NoSQL 数据库不支持数据透视表。
数据透视表允许您交换行和列、对数据进行分组,并在表格中包含小计。您可以按一个或多个维度对一个或多个指标进行分组。
数据透视表 vs. 普通表格
您典型的基本表格是一个单元格网格。每个维度(也称为属性、“分组依据”)都由一列表示。每条记录都表示为一行。例如,在下表中,Source
、Plan
和 Created at
是指标值 Sum of Seats
和 Count
的维度/属性。
数据透视表是一种在行和列中都有维度,并在单元格中有指标值的表格。数据透视表可以包含带有这些维度总计的汇总行。
它们之所以被称为数据透视表,是因为您可以将一列旋转(“透视”)90度,使该列中的值本身成为列标题。当分析跨多个属性(如时间、地点和类别)的数据时,将值透视为列标题非常有用。您可以将多个行透视为列,反之亦然,或者完全不进行透视。
数据透视表是 Metabase 中唯一一种(当然,除了普通表格)可以同时显示多个指标和多个维度的可视化类型。
如何创建数据透视表
要创建数据透视表,您需要使用查询构建器。目前,您无法为用 SQL 编写的问题构建数据透视表,因为 Metabase 需要修改您的 SQL 代码才能计算小计。如果您确实需要使用 SQL,解决方法是将您的问题分两步创建:首先在 SQL 中完成所有您需要做的复杂操作,将结果保存为一个问题,然后使用该保存的 SQL 问题作为新查询构建器问题的起点,以汇总该数据。
-
在查询构建器中创建一个问题,该问题至少包含一个分组汇总,例如“按
Category
和Month
统计订单的Count
”。您可以在查询中包含多个指标(例如,“按
Category
和Month
统计订单的Count
和Average of Total
”)。 - 点击可视化。
- 要将可视化更改为数据透视表,请点击左下角的可视化图标,并在侧边栏中选择数据透视表。
-
要配置在数据透视表中显示为行和列的字段,请点击齿轮图标,并将字段分配到三个“桶”中的一个:行、列或度量。
- 行和列应包含维度,或分组依据——换句话说,就是您用来分组的字段,如
Category
或Created at
。 - 度量应包含您的汇总或指标——例如
Count
或Average of Total
。
您可以在“行”和“列”桶中放入多个字段,但请注意,字段的顺序会改变 Metabase 显示表格的方式:每个额外的字段都会嵌套在前一个字段中。
- 行和列应包含维度,或分组依据——换句话说,就是您用来分组的字段,如
目前,您查询中的所有维度和指标都必须作为行、列或度量出现在数据透视表中(尽管您可以将行折叠到它们的总计)。如果您不想在数据透视表中显示某个分组或指标,您需要从查询中移除它——您不能在数据透视表中隐藏它。
总计和总计
在有意义的地方,Metabase 会自动为分组的行包含小计。
例如,如上图所示,因为我们首先按 Source
分组行,然后按 Plan
分组,Metabase 将列出每个 Source
的每个计划,然后聚合该来源的指标。
要折叠数据透视表上的一个组,您可以点击组标题旁边的减号(–)按钮(或加号(+)按钮来展开它)。当您保存数据透视表时,Metabase 会记住哪些组是展开的,哪些是折叠的。
您可以要求 Metabase 隐藏总计,方法是转到数据透视表设置(齿轮图标)并关闭“显示行/列总计”。
数据透视表中的条件格式
您可以根据条件或使用值范围向数据透视表添加颜色。
Metabase 不会格式化总计或总计。
数据透视表的条件格式化与普通表格的工作方式相同,因此请参阅条件格式化。
将数据透视表用作热图
您可以在数据透视表中使用条件格式来模拟按维度划分的值的“热图”。
- 使用汇总块创建一个查询构建器问题,该问题具有
- 一个定义热图中单元格强度的指标
- 两个用于定义地图水平和垂直组件的分组
- 将查询可视化为数据透视表。
- 添加一个“颜色范围”条件格式。
例如,要构建一个按星期几划分的每小时活动热图,请使用一个按小时和星期几分组的查询。
使用带有条件格式的数据透视表
数据透视表导出
将数据透视表导出为 XLSX 文件时有特殊考虑。请参阅导出数据透视表。
数据透视表的限制
- 数据透视表仅适用于 SQL 数据库。
- 查询中指定的所有指标和维度都将显示在数据透视表中。
- 数据透视表仅适用于使用查询构建器创建的问题。
- 查询构建器问题必须有一个汇总块。
如果您必须使用 SQL,并且您的 SQL 查询没有参数,您可以保存该 SQL 查询,然后使用其结果作为查询构建器问题的起点来构建问题。这里的技巧是在查询构建器中进行聚合和分组。也就是说,使用 SQL 问题获取您想要处理的原始数据(也许可以创建一个模型),然后在查询构建器中开始一个新问题来筛选、汇总和分组这些数据。
阅读其他版本的 Metabase 的文档。