• 注册
    • 登录
    • 版块
    • 热门
    • Metabase官网
    • 社区汉化版
    • 达之云

    Metabase学习教程:仪表盘-6 时间段比较

    Metabase学习教程
    1
    1
    489
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • D
      dazdata 最后由 编辑

      如何进行时间段比较
      我们通过不同的方法来比较一个指标在不同日期范围内的表现。
      我们将研究不同的策略来比较两个不同时期的指标,比如将本周与上周、去年同期与上一周进行比较。我们将使用Metabase附带的示例数据库,这样您就可以继续学习了。这个示例数据库包含了2015年至2020年期间存在的一家完全真实、完全虚构的公司的订单信息。为了提高我们的查询生成器技能,我们对2018年与2019年订单的对比感兴趣。
      本文基于上一篇文章时间序列比较,但这里我们讨论两种不同的策略:
      • 在仪表盘上并排比较时间段
      • 在同一图表上叠加两个时间序列
      在仪表盘上并排比较时间段
      替代文字
      图1.dashboard有两列,左边是Date 1,右边是Date 2,每个列都有连接到各自的筛选器小部件的卡片。第三个小部件连接到两列中的卡,以筛选产品类别。
      此模式易于维护和扩展(通过修改卡或添加新卡),当您要比较多个指标时,它尤其有用。
      第一步是创建一个问题。对于我们的数据,我们将选择Orders表。我们将汇总订单数量,并按月分组。然后我们将问题保存为“每月订单数”。
      替代文字
      图2。我们的问题的笔记本视图,总结了按月份分组的订单计数
      接下来,我们将把“每月订单”问题添加到一个新的仪表盘,并将该仪表盘称为“并排比较”,或其他任何方式。然后,我们将同样的问题“每月订单数”再次添加到仪表盘(即,作为第二张卡片),将其放在原始问题的右侧。
      我们在这里要做的是在仪表盘中创建两个列:左栏有一个日期范围,右栏有第二个日期范围。我们会的安装过滤器为了控制卡片的日期范围,左栏(如图3所示)和另一个过滤器控制右栏的日期范围。
      我们将为每个过滤器使用“Between”选项设置默认日期范围(您可以键入日期,而不是单击日历)。
      • 日期1范围:2018年1月1日到2018年12月31日
      • 日期2范围:2019年1月1日到2019年12月31日
      替代文字
      图3。将日期1筛选器附加到左栏(而不是右栏)的每张卡片上。
      保存更改,然后刷新页面以更新结果。我们还可以将其他筛选器附加到仪表盘,以便在两列中连接到卡片,例如,如果要按特定类别筛选订单。
      您可以添加带有时间序列的附加卡,并将它们连接到该列对应的筛选器。
      并列比较提示
      请记住,这种模式在查看手机时会崩溃,因为Metabase会将每张卡折叠成一列。您仍然可以理解仪表盘,但它要求您仔细查看每张卡片的日期。
      对每一列使用相同的问题
      这样,如果你想修改问题,你只需要更新一个问题,两列都会得到更新。
      确保两张卡片上的坐标轴相同
      Metabase默认自动调整y轴以考虑这些值,但如果一张卡的最高值为500,而另一张卡的最高值为1000,则很难看到两张卡之间的差异。在仪表盘编辑模式下,将鼠标悬停在某个卡上,然后单击调色板图标以编辑可视化设置。单击轴线tab,关掉自动y轴范围并设置y轴最大值(应将最小值保留为0)。
      替代文字
      图4。将y轴最大值设置为600。
      使用目标线和/或趋势线
      添加线条可以使人们更容易在图表中区分度量性能。在图1中,很明显,2019年的订单比2018年更经常超过目标。
      将文本卡添加到组相关卡
      为了使人们更容易理解拆分设置,我们可以添加文本卡,指示每个列对应于其中一个筛选器:左侧列对应日期1,右侧列对应日期2。在仪表盘编辑模式下,您可以通过将鼠标悬停在卡片上并单击调色板图标。例如,对于##日期1,我们设置了垂直对齐到“顶部”时水平对准切换到“中心”,然后关闭显示背景设置。
      使用颜色区分列
      您可以使用不同的颜色来区分每列中的卡。将鼠标悬停在一张卡片上,然后单击调色板图标更新卡的可视化设置。
      有关仪表盘的更多提示,请查看BI仪表盘最佳实践.
      在同一图表上叠加两个时间序列
      现在开始一个完全不同的方法。这里我们将介绍两种模式:
      • 使用自定义列对静态日期范围进行分组
      • 使用自定义表达式将上周与前一周进行比较
      使用自定义列对静态日期范围进行分组
      在这里我们将使用Case语句来创建自定义列。我们可以使用之间表达式。在这里,我们将使用自定义表达式.
      case(between([Created At], "2018-01-01", "2018-12-31"), "2018", between([Created At], "2019-01-01", "2019-12-31"), "2019")
      这个表达式的意思是,对于结果中的每个记录(行),添加一个新列。如果Created At字段在2018年1月1日至2018年12月31日之间,在该记录的年份列中输入值“2018”。如果Created At日期介于2019年的范围内,用“2019”代替。否则,请将其留空。接下来,我们要过滤我们创建的“年份”列不是空的所有记录。
      替代文字
      图5。查询编辑器包含一个名为“年”的自定义列,筛选出空的年份,并按年份对订单和组进行计数,并按年创建。
      这里我们有两个时间序列,2018年和2019年,在同一个图表上:
      替代文字
      图6.同一图表上的两个时间序列。
      你也可以把它想象成条形图:
      替代文字
      图7。与图6中的序列相同,但与条形图相同。
      现在,如果要比较日期与当前日期的关系,可以使用interval函数case语句,但我们将介绍interval下一个。
      使用自定义表达式将上周与前一周进行比较
      在上一篇关于时间序列比较 CountIf聚合和between功能。这次我们要用interval函数,它允许我们指定相对于当前日期的持续时间。
      示例数据库只有到2020年的数据(不确定公司发生了什么),所以您需要在自己的数据上尝试一下,但它的工作原理如下:
      和Orders表作为我们的起始数据,我们将添加两个摘要(指标)。在总结节中,我们将使用一个名为“上周”的自定义表达式定义一个摘要:
      CountIf(interval([Created At], -1, "week"))
      在interval-speak中,0表示当前星期,所以我们写-1来仅在Created At因为那一排是从上周开始的。我们也可以将“周”改为“日”、“月”、“年”或其他间隔;检查数据库的文档,查看它支持哪些间隔。
      接下来,我们将为“前一周”定义第二个摘要。
      CountIf(interval([Created At], -2, "week") AND NOT interval([Created At], -1, "week"))
      这里我们说的是只统计前两周的所有订单,除了(AND NOT)上周的订单。
      最后,我们需要对总结进行分组。既然我们想看看上星期一和前一个星期一(以及一周中每隔一天)的表现,我们就想分组Created At通过星期几。

      1 条回复 最后回复 回复 引用 0
      • First post
        Last post

      Powered by MetabaseCN | 提供专业Metabase培训 | QQ群:799286435 微信:MetabaseCN

      鄂ICP备20010758号