汇总和分组
本页介绍查询构建器中的“汇总”和“分组”步骤。
当我们提出“上周每天有多少人下载了我们的应用程序?”这样的问题时,我们要求对数据进行汇总。汇总通常由两部分组成:我们关心的一个或多个数字(在数据术语中称为“指标”),以及我们希望如何分组或细分该数字。为了回答“上周每天有多少人下载了我们的应用程序?”这个示例问题:
- 指标是下载了应用的人数(行数)。
- 我们希望该指标按“每天”进行分组。
- 我们希望筛选“上周”的数据行。
您通常会通过两种常见方式来汇总数据:
- 计算表中的行数
- 获取数字列的总和或平均值
很多时候,您会接着按以下方式分组该指标:
- 时间
- 地点
- Category
汇总指标
添加汇总步骤让您可以选择如何聚合上一步的数据。您可以选择一个或多个指标,并可选择按一个或多个维度(列)对这些指标进行分组。在选择指标时,您可以从sum
(求和)、average
(平均值)和count
(计数)等基本函数中进行选择;您也可以选择管理员定义的常用指标;或者您可以通过编写公式来创建自定义表达式。
常用指标包括:
- 行数: 表中行的总数,在应用任何筛选器之后。如果您正在查看您的
Orders
(订单)表,想知道价格大于 40 美元的订单有多少,您需要按“价格大于 40”进行筛选,然后选择Count of rows
(行数),因为您希望 Metabase 计算符合您筛选条件的订单数量。 - …的总和: 特定列中所有值的总和。
- …的平均值: 单个列中所有值的平均值。
- …的不同值的数量: 单个列中所有单元格中唯一值的数量。这在您想了解诸如上个月销售了多少种不同类型的产品(而不是总共销售了多少产品)时很有用。
- …的累计总和: 这为您提供特定列的运行总计。为了使此指标有用,您需要按日期列进行分组,以便按时间查看。
- 行的累计计数: 这为您提供表中行数随时间的运行总计。就像
Cumulative sum of…
(…的累计总和)一样,您需要按日期列进行分组,才能使其有用。 - …的标准差: 一个数字,表示一列的值在该列平均值的正负方向上变化的程度。
- …的最小值: 所选字段中存在的最小值。
- …的最大值: 所选字段中存在的最大值。
如果您进行汇总并添加了分组,那么您可以再次汇总。您还可以在中间添加筛选和/或联接的步骤。例如,您的第一个汇总步骤可以是获取每月的订单数,然后您可以添加第二个汇总步骤,通过选择您的count
(计数)列的Average of…
(…的平均值)来获取月平均订单总数。
您还可以在结果页面的侧边栏中添加指标和分组:侧边栏的顶部用于选择您想查看的数字(“指标”),下面的部分用于选择如何对该数字进行分组(或如何“细分”)。
如果您的管理员创建了任何针对您公司或组织的命名指标,它们将显示在此下拉菜单的常用指标部分。这些可能包括您公司计算收入的官方方法等。
默认情况下,Metabase 会将显示的聚合行数限制为 10,000 行。您可以使用环境变量 MB_AGGREGATED_QUERY_ROW_LIMIT
更改此限制。
对您的指标进行分组
根据您选择的分组列,Metabase 会为您显示它认为最适合此汇总的默认可视化或图表。因此,如果您选择一个日期列,您会看到一个折线图,如下所示(您可以点击绿色的汇总按钮查看汇总侧边栏)。
当您点击不同于当前所选的分组列时,分组将切换为使用该列。但如果您想添加一个额外的分组,只需点击该列右侧的加号 (+) 图标即可。要移除一个分组,请点击 X 图标。
某些分组列会为您提供选择分组大小的选项:
- 对于日期时间列,您可以点击
by month
(按月)字样,将分组更改为日、周、小时、季度、年等。您还可以通过同一日期时间列添加多个不同时间粒度的细分(例如,按周和星期几分组)。有关按年中的周进行分组的信息,请参阅年中的周。 -
对于像年龄这样的数字列,Metabase 会自动对结果进行“分箱”,因此您会看到您的指标按年龄段分组,如 0-10、11-20、21-30 等。就像日期一样,您可以点击当前的分箱选项,将其更改为特定数量的分箱。目前,您无法为分箱选择自己的范围。
如果您选择固定数量的分箱,Metabase 会将数据范围划分为该数量的等大小区间。某些区间可能最终没有数据,Metabase 将不会显示它们。
阅读其他版本的 Metabase 的文档。