Metabase学习教程:仪表盘-5

news/2024/4/27 4:57:40/文章来源:https://blog.csdn.net/weixin_38030820/article/details/128092951

SQL查询仪表盘添加筛选器

如何将过滤器小部件添加到仪表盘,并将它们连接到多个SQL查询中的字段过滤器变量。

本文介绍如何创建仪表盘小工具到过滤器数据输入SQL查询。图1显示了我们将要构建的仪表盘:

图1。我们将要构建的:一个仪表盘,其中两个过滤器连接到两个用SQL编写的问题。

此仪表盘具有以下功能:

  • 用SQL写的两个问题,
  • 二筛选小部件:一个日期过滤器和一个`过滤器。

在任意一个过滤器(或两个过滤器)中选择一个值将更新这两个问题的结果。

我们的目标是了解如何连接仪表盘筛选器小部件到一个特殊的变量类型,称为字段过滤器,我们将其插入到问题的SQL代码中。以下是我们的行程:

为了了解一些背景,请查看我们的文章SQL变量尤其是字段筛选器.

SQL查询添加字段筛选器变量

让我们从一个问题SQL编写,显示来自示例数据库包括在Metabase中。在任何Metabase页面的导航栏右上角,单击控制台图标访问SQL查询编辑器.

图2。用SQL编写的问题,显示每月的订单,以折线图的形式显示。

以下是SQL代码:

SELECT

    PARSEDATETIME(FORMATDATETIME(orders.created_at, 'yyyyMM'), 'yyyyMM') AS "Created at",

    COUNT(*) AS "Number of orders"

FROM orders

GROUP BY "Created at"

ORDER BY "Created at" ASC

现在,我们讨论的是过滤数据,精明的读者可能已经意识到我们的SQL代码中没有filter语句。没有Where子句。意思:即使我们要将这个问题添加到仪表盘,并向该仪表盘添加一个过滤器小部件,该过滤器也不会对我们的SQL查询产生任何影响,因为在我们的代码中没有指定的位置让小部件插入其值。

让我们通过在SQL查询中添加一个称为字段过滤器.字段过滤器是一种特殊类型的变量,它将变量映射到数据表的字段(或列) 上。

下面是我们要添加的SQL代码:

WHERE {{created_at}}

你可能会注意到=Where子句。之所以存在这种缩写语法,是因为字段过滤器在幕后为您处理一些SQL代码。关于这里发生的事情的更多信息,请查看字段筛选器.

Where子句,我们的代码如下所示:

SELECT

    PARSEDATETIME(FORMATDATETIME(orders.created_at, 'yyyyMM'), 'yyyyMM') AS "Created at",

    COUNT(*) AS "Number of orders"

FROM orders

WHERE {{created_at}}

GROUP BY "Created at"

ORDER BY "Created at" ASC

既然我们的SQL代码中有了变量,我们需要告诉Metabase如何使用该变量。当我们在代码中添加变量时,Metabase将滑出变量提要栏我们将设置变量类型字段过滤器,然后将该变量映射到数据库中的一个字段,以便Metabase知道它应该向问题添加什么样的过滤器小部件。在本例中,我们将变量映射到created_at字段用于Orders表。

图3。正在为SQL变量设置变量类型created_at字段过滤器,然后设置映射到的字段created_at的字段(列)Orders表。

请注意,我们可以随意调用SQL变量,但必须将变量映射到适当的字段,以便仪表盘过滤器正常工作。

现在,我们将过滤器小部件标签保留为created_at,然后不选择必需的选项。这样,如果变量的filter小部件为空值,那么问题将像Where子句不存在。

我们也可以选择一个过滤器小部件类型,尽管这个小部件只适用于我们的问题。让我们选择日期筛选器类型,这是小部件中最具表现力的。

让我们保存我们的问题。我们称之为每月订单数-SQL.

接下来,我们需要:

  • 创建仪表盘
  • 将我们的问题添加到仪表盘,
  • 在仪表盘中添加一个不同的过滤器小部件,
  • 然后将仪表盘小部件连接到SQL查询中的字段过滤器变量。

但首先,绕道而行。

数据类型绕道而行

当我们选择created_at字段,Metabase知道字段类型是一个时间戳(注意日历图标). 通过浏览数据,可以了解每个表的字段(列)类型。

图4。通过单击查看有关数据的信息浏览数据在顶部导航栏中,选择您的数据库(在本例中是示例数据库),单击表旁边的信息图标,然后单击书本图标去了解这张桌子。

图5。查看中字段的信息Orders示例数据库的表。

管理员可以编辑字段类型以及其他元数据设置,在数据模型选项卡管理面板。要了解更多信息,请查看我们的元数据编辑文档.

将仪表盘筛选器小部件连接到字段筛选器变量

所以我们有一个SQL查询(图6),在Where子句,现在是将该问题添加到仪表盘的时候了。

图6。我们的SQL查询带有字段筛选器变量,显示每月创建的订单。

让我们创建仪表盘(我们会给我们的仪表盘起一个不可思议的名字带过滤器小部件的仪表盘).

那我们就将我们的SQL查询添加到仪表盘.

接下来,我们要将过滤器小部件添加到我们的仪表盘。在仪表盘编辑模式下(单击铅笔图标进入编辑模式):

  • 单击过滤器图标向仪表盘添加新的过滤器小部件。
  • 低于我们要过滤什么,我们将选择时间.
  • 什么样的过滤器?,我们将选择所有选项,它将向仪表盘添加日期筛选器。
  • 接下来,我们需要将小部件连接到问题中的字段过滤器变量。单击问题中心的下拉菜单,然后选择创建于字段过滤器变量(图7)。
  • 单击多恩屏幕顶部的按钮。
  • 那么保存仪表盘。

图7.添加日期过滤器(时间→ 所有选项)连接到仪表盘,并将过滤器小部件连接到字段过滤器变量,创建于在我们的SQL查询中。

现在我们都准备好了,准备测试我们的新日期过滤器。这种特殊的小部件类型为我们提供了丰富的选择。让我们选择双方选择日期范围的选项。在这种情况下,我们将选择2019年(201911日至20191231日)的订单。

图8.使用双方我们的日期过滤器小部件中的选项,用于选择2019年1月1日至2019年12月31日的订单。

使用我们的仪表盘过滤器集,我们的SQL查询更新以筛选创建于列落在仪表盘上筛选器小部件指定的日期范围内。

图9。在我们的过滤器小部件中设置了日期范围,我们的SQL查询,每月订单数-SQL,将只显示该范围内的订单。

在仪表盘上筛选多个SQL查询

让我们向仪表盘添加一个额外的SQL查询。为了简单起见,让我们创建一个问题,返回每月创建的新帐户。此问题的SQL与我们的第一个问题类似:

SELECT

    PARSEDATETIME(FORMATDATETIME(people.created_at, 'yyyyMM'), 'yyyyMM') AS "Created at",

    COUNT(*) AS "Number of new accounts"

FROM people

WHERE {{created_at}}

GROUP BY "Created at"

ORDER BY "Created at" ASC

再一次,为了我们{{created_at}}变量,我们将:

  • 设置变量类型字段过滤器.
  • 设置映射到的字段选择created_at领域People表(不是Orders表)。
  • 离开过滤程序类型或者改成日期筛选器(请注意,此设置仅适用于问题的筛选器小部件,而不是仪表盘。)
  • 不选择必需选项(如:不需要变量)。

省省你的问题,给它起个标题新帐户数-SQL,并将问题添加到仪表盘。

现在,现有的日期筛选器不会自动连接到新添加的问题,新帐户数-SQL。如果我们更新日期筛选器小部件中的值,则只更新连接问题中的数据,每月订单数-SQL,将更新以显示筛选的数据。

因此,让我们将新问题连接到仪表盘过滤器小部件:

  • 单击铅笔图标进入仪表盘编辑模式。
  • 选择编辑日期筛选器小装置。
  • 然后选择created_at选项(唯一的选项)从下拉菜单的中心新帐户数-SQL卡片(见图10)。
  • 保存仪表盘。

图10。正在将另一个问题连接到同一个日期筛选器小部件。

当两个字段过滤器变量都连接到仪表盘过滤器小部件时,当我们在小部件中选择一个值时,两个问题都会用过滤后的数据更新它们的图表。

将另一个筛选器小部件添加到仪表盘

现在我们在仪表盘上有两个问题连接到一个过滤器。让我们添加另一个过滤器。既然我们已经征服了时间,就让我们控制空间吧。让我们向仪表盘添加一个小部件,它允许我们按美国的州进行筛选。

首先,我们需要添加一个{{state}}变量Where子句每月订单数-SQL查询

SELECT

    PARSEDATETIME(FORMATDATETIME(orders.created_at, 'yyyyMM'), 'yyyyMM') AS "Created at",

    COUNT(*) AS "Number of orders"

FROM orders

LEFT JOIN people

ON orders.user_id = people.id

WHERE {{created_at}} AND {{state}}

GROUP BY "Created at"

ORDER BY "Created at" ASC

接下来,我们将指定{{state}}变量是类型为的字段筛选器(见图11)。

注意:如果小部件类型不可用,则数据类型与字段筛选器兼容,管理员可能需要在数据模型选项卡。了解更多编辑文档中的元数据.

图11。添加连接到PeopleState字段。

既然我们的问题可以从People表中的State列,我们可以返回到仪表盘并向仪表盘添加新的筛选器并将其称为State。我们将把这个新的仪表盘过滤器连接到问题的字段过滤器变量,{{state}}.

图12。正在将状态字段筛选器连接到仪表盘状态筛选器小部件。

请看:我们的仪表盘包含两个SQL查询和两个过滤器小部件:一个日期过滤器和一个过滤器。

图13.Dashboard包含两个过滤器小部件:一个日期过滤器和一个状态过滤器。加利福尼亚(CA)2018年创建的订单/账户的日期过滤器。

为了匹配图1中的仪表盘,剩下的工作就是添加文本框。请关注Metabase中文社区。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_38509.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在el-table表头上引入组件不能实时传参bug

文章目录场景还原解决方法出现原因场景还原 产品要求&#xff1a;点击表格的表头&#xff0c;能触发一个下拉的列表&#xff0c;列表能携带表格的筛选条件&#xff0c;获取相应的数据 写了一个demo&#xff0c;来还原一下bug出现的场景&#xff1a; <div id"demo&qu…

分省/市政府性债务数据财政收支数据财政透明度

&#xff08;1&#xff09;30省地方政府债务面板数据 1、数据来源&#xff1a;自身 2、时间跨度&#xff1a;2012-2018年 3、区域范围&#xff1a;全国30各省&#xff08;西藏除外&#xff09; 4、指标说明&#xff1a; 部分指标如下&#xff1a; 负债率&#xff08;地方…

【性能|优化】TB级flink任务报错分析:Could not compute the container Resource

文章目录一. 问题引入1. 场景描述2. 日志简析二. 初级问题分析与解决1. 问题分析1.1. yarn的调度器设置1.2. 程序设置2. 问题解决三. &#xff08;性能&#xff09;新的问题1. 问题描述2. 理想化的最优方案3. "PlanB"的解决方案四. 反思与迭代一. 问题引入 1. 场景描…

Focal Self-attention for Local-Global Interactions in Vision Transformers

目录 Abstract 1. Introduction 2. MEthod 2.1 Model architecture 2.2 Focal self-attention 2.2.1 Window-wise attention 2.2.2 Complexity analysis 2.3 Model configuration 3. Related work 4. Experiments 4.1 Image classification on ImageNet-1K 4.…

xss-labs/level7

我们如同一下构造那样 <script>alert(xss)</script> 产生以下回显 接着查看源代码 发现第一个输出点被转义了 没有利用价值了 第二个输出点则是可以发现script关键字直接给干没了 氧化钙!!! 似此 如何处之&#xff1f; 我们猜测后台服务器还是对一些特殊字符进…

hiveSql 相互关注问题

hiveSql 相互关注问题说明需求分析优化实现最后说明 普遍社交软件上会有关注功能&#xff0c;如何知道自己的关注是否也是关注了自己呢&#xff1f; 需求 求关注结果数据中&#xff0c;相互关注的用户对。 数据如下&#xff1a; follow表&#xff1b;from_user&#xff1a;关…

人才资源开发杂志人才资源开发杂志社人才资源开发编辑部2022年第21期目录

开卷有益《人才资源开发》投稿&#xff1a;cnqikantg126.com 年轻干部要走好成长成才之路 赖宁; 1 特别关注 迎难而上 勇担重任 推进河南人事考试高质量发展 常万琦; 6-7 工作要闻 第五届中国河南招才引智创新发展大会开幕 归欣 ;张笑闻; 8 河南省12家企业和2个…

Playwright 简明入门教程:录制自动化测试用例,结合 Docker 使用

本篇文章聊聊如何使用 Playwright 进行测试用例的录制生成&#xff0c;以及如何在Docker 容器运行测试用例&#xff0c;或许是网上最简单的入门教程。 写在前面 Playwright 是微软出品的 Web 自动化测试工具和框架&#xff0c;和 Google Puppeteer 有着千丝万缕的关系。前一阵…

电脑密码忘了怎么解除?最简单操作的方法

可能很多人都遇到过这种情况&#xff1a;忘记了电脑密码。电脑密码忘了怎么解除&#xff1f;大多数人都不知道如何解决。下面就为大家分享一下电脑密码忘记怎么解决的方法&#xff0c;方法主要分为两种情况&#xff1a;一种情况是&#xff0c;电脑开机下忘记密码&#xff1b;另…

Cpp知识点系列-类型转换

前言 在做题的时候发现了需要用到类型转换&#xff0c;于是在这里进行了简单的记录。 历史原因&#xff0c;慢慢整理着发现类型转换也能写老大一篇文章了。又花了时间来梳理一下就成了本文了。 cpp 之前使用的环境是DEV-C 5.4&#xff0c;而对应的GCC版本太低了。支持c11需要…

智慧环卫管理系统解决方案(垃圾分类)

1.1 垃圾分类管理子系统 1.1.1 公众参与互动平台 可为客户量身打造微信公众号&#xff0c;搭建互动交流的平台&#xff0c;更好的调动居民参与垃圾分类的热情。 1.1.1.1 分类指导 将目前城市的垃圾处理情况、垃圾分类现状、分类的意义&#xff0c;以数据来说明垃圾分类的…

【设计】OOA、OOD、OOP

这三者都是 OO&#xff08;Object-Oriented&#xff09;领域的思想。 一般我们我们接到产品经理的需求后&#xff0c;开发阶段分这样几个步骤&#xff1a; 可行性预研阶段&#xff0c;此阶段评估需求是否合理&#xff0c;能否实现&#xff1b;OOA阶段&#xff0c;此阶段分析用…

语文课内外杂志语文课内外杂志社语文课内外杂志社2022年第14期目录

幼儿教育《语文课内外》投稿&#xff1a;cn7kantougao163.com 家园协同视域下幼儿心理危机的预防与干预对策 曹锭1-3 幼小衔接阶段幼儿时间观念的培养对策 陈晶晶4-6 有效支持 助力幼儿在书海中徜徉 胡玲珊7-9 东西部幼儿园结对帮扶,助力乡村教育扶贫——以广州市人民政府机关幼…

多线程(2)

文章目录前言 &#xff1a;1.Thread类 &#xff1a;1.1 Thread类常见的构造方法1.2 Thread的几个常见属性1.3 中断一个线程1.4 等待一个线程-join()1.5 获取当前线程引用1.6 休眠当前线程2.线程状态前言 &#xff1a; 简单回顾上文知识点 上文我们了解了 线程是为解决并发编程引…

Java数据审计工具:Envers and JaVers比较

在Java世界中&#xff0c;有两种数据审计工具&#xff1a;Envers和JaVers。 Envers已经存在了很长时间&#xff0c;它被认为是主流。 JaVers提供全新的方法和技术独立性。 如果您考虑哪种工具更适合您的项目&#xff0c;本文是一个很好的起点。 本文分为三个部分。首先&#x…

[附源码]计算机毕业设计springboot餐馆点餐管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【新知实验室-TRTC开发】实时音视频之欢度世界杯

目录 一、什么是TRTC 二、用5分钟跑通一个demo 1、开通腾讯云-TRTC 2、获取demo必须的两把钥匙 2.1输入应用名称 2.2下载对应的源码包&#xff08;手机、web、小程序等&#xff09; 2.3拿到钥匙 2.4完成 三、搭建一起看世界杯应用 1、解压源码&#xff08;耗时30S&#x…

[附源码]计算机毕业设计springboot房屋租赁系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MySQL为自动编号的字段赋值

insert users values(NULL,ming,fasdfasdfasd,22,1); 或者 insert users values(DEFAULT,ming,fasdfasdfasd,22,1);

网络的根基

hi 大家好&#xff0c;上个周末带小伙伴&#xff0c;一起复习了一遍网络协议&#xff0c;对网络协议的核心知识进行梳理&#xff0c;希望大家早日掌握这些核心知识&#xff0c;打造自己坚实的基础&#xff0c;为自己目标慢慢积累&#xff0c;等到自己春天的到来。详细点击查看…