当前位置: 首页 > news >正文

QuickBI助你成为分析师——计算字段功能

在用户创建报表时,有时通过现有字段数据不能直接满足展示需求,需要进行一定建模操作。目前产品支持在数据集编辑界面进行初步建模,下面主要介绍新建字段功能,以达到展示需求。

什么是计算字段

计算字段就是 符合当前数据源sql 列定义语法规则的用户自己用已有字段和sql支持函数构造出的新的列。

若用户需要在数据源中已有的数据基础上进行计算以得到新的值,可以选择添加计算字段。

构建计算字段的时候,支持用户使用业务人员也容易理解的语义化的维度或度量名作为 表达式参数,计算字段语义形式的逻辑表达式最后在qbi引擎生成真实执行sql的时候,由qbi 执行引擎翻译成底层的物理字段名构成的列表达式。

添加计算字段的方法

计算字段分为两种:计算维度与计算度量。

用户可以在数据集编辑界面下,
在维度栏和度量栏中点击“+”,并在弹出的计算字段编辑器对话框中使用支持的函数和已有字段的组合即可。

从维度栏新建的计算字段自动为计算维度,从度量栏新建的计算字段自动为计算度量。

在计算字段的表达式编辑框中,当前所在数据源支持的函数和列表达式语法都可以使用。

函数名需要手工输入。

字段名可以手动输入,格式是[字段名],
也可以通过输入“[” 选择提示出的字段名列表中的字段或双击左侧维度度量树中的节点来插入维度或度量字段名到表达式编辑框。

正确输入的sql表达式在编辑框中会自动有语法着色。

注意点:用户编写计算字段表达式的时候 最容易出错的地方是:中英文引号,中英文逗号 ,中英文小括号等中英文标点符号混用 导致语法解析出错,其次才是列表达式的语法用错导致出错,事实上只允许英文的标点符号作为词法符号出现在 sql列表达式中!

如果计算字段报错,首先需要非常非常地仔细检查是不是 把英文的逗号、引号输入成了
中文的逗号、引号,如果肉眼实在看不出来是否真的输入的是英文的标点符号,就把表达式中已有的逗号、引号都删除,在确保是英文输入模式下 重新输入一遍逗号、引号等标点符号。

已添加的计算字段目前不可以作为表达式再被使用在其他计算字段中。
但若计算字段中所使用的原始基础字段物理层被删除,则该计算字段也将失效。

calculated_d

image

计算字段的使用

未聚合的计算字段可以用作维度,也可以在设置聚合方式后用作度量。

已聚合的计算度量只能用作度量,不能再转为维度。

计算字段可以设置数据类型,目前支持三种数据类型:数值,文本,日期时间。

提醒:如果 设置计算字段的数据类型为文本,实际内容也为文本,然后又设置其聚合方式为sum,avg等聚合方法之一,最后实际执行查询的时候会报告类型转换错误而无法得到查询结果。

与数据源中的原生字段生成的维度和度量相同,计算维度或计算度量也可以被使用在行列,属性面板以及筛选器中。用户也可以将计算字段进行维度和度量的转换。

计算度量的类型

计算度量的类型有两种:普通度量和聚合度量。

没有使用 聚合函数的表达式构成的度量 为普通度量。

使用了聚合函数的表达式构成的度量为 聚合度量。

可以使用count() 或 count( distinct ) 函数将维度字段作为函数参数来构成去重聚合度量。

聚合度量的例子 :人均购买金额 sum(购买金额)/countd(用户id),订单成本占比 sum(订单成本)/sum(订单金额),但是如果用avg(点单成本/订单金额) 算错误的。

普通度量和聚合度量不能混合使用,类似这样的写法是错误:sum(订单成本)/订单金额

普通度量,也就是不包含聚合函数的度量的聚合方式可以更改其聚合函数,
聚合度量没有更改聚合函数的菜单选项了,聚合度量也不能再转为维度。

聚合度量支持的聚合函数如下:
SUM,AVG,MIN,MAX,COUNT,COUNT distinct

常见应用场景

场景1:表中有年龄、姓名字段,想要展示不同年龄段人数占比。

  1. 创建数据集,新建维度字段‘年龄区间’,划分不同年龄段:

2.将 name 字段右键-克隆维度,然后将副本转化为度量,右键编辑修改名称为‘计数’:

3.保存数据集,创建仪表板。添加饼图控件,添加‘年龄区间’和‘计数’字段:

4.保存仪表板,即实现了展示不同年龄段人数占比效果。

场景2:数据可视化过程中经常遇到求特定条件下的数据占总量的比例,即占比问题,例如 个数占比:展示订单等级为高级的数量占比,需要求得高级订单与总订单个数。

1.准备数据集

根据表company_sales_record新建数据集。

2.新建字段求高级订单个数占比

新建度量用来展示高级订单个数占比:

3.保存数据集,新建工作表

如图选择 区域、高级订单个数占比、订单数量 字段:

展示了各区域下高级订单个数占比。

4.保存工作表

保存工作表,即解决了 个数占比 的问题。

相关文章:

  • 基于ASP.NET MVC 微信网页登录授权(scope为snsapi_base) 流程 上 获取OPENID
  • PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
  • composer移除依赖包
  • 在Linux,误删磁盘分区怎么恢复呢【转】
  • 纯html页面中js如何获得项目路径
  • Confluence 6 后台中的选择站点首页
  • 算法18-----判断是否存在符合条件的元素【list】
  • 邪恶的三位一体:机器学习、黑暗网络和网络犯罪
  • sql查询本周,本月数据
  • 生产环境Vmware新增硬盘扩展VG并新建文件系统
  • 通过7个函数解密区块链(附代码)
  • php面试题三
  • CISP-PTE注册信息安全专业人员渗透测试工程师知识体系大纲
  • kafa单机版环境搭建
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Angular数据绑定机制
  • css选择器
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  •  D - 粉碎叛乱F - 其他起义
  • DOM的那些事
  • ERLANG 网工修炼笔记 ---- UDP
  • EventListener原理
  • gulp 教程
  • XML已死 ?
  • 精彩代码 vue.js
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 使用API自动生成工具优化前端工作流
  • 使用docker-compose进行多节点部署
  • 使用权重正则化较少模型过拟合
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 7行Python代码的人脸识别
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ![CDATA[ ]] 是什么东东
  • #include
  • #Java第九次作业--输入输出流和文件操作
  • #Linux(Source Insight安装及工程建立)
  • #大学#套接字
  • #在 README.md 中生成项目目录结构
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Note)C++中的继承方式
  • (TOJ2804)Even? Odd?
  • (待修改)PyG安装步骤
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • .naturalWidth 和naturalHeight属性,
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net程序集学习心得
  • .NET使用存储过程实现对数据库的增删改查
  • .NET文档生成工具ADB使用图文教程
  • .Net语言中的StringBuilder:入门到精通