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

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

什么是计算字段

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

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

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

添加计算字段的方法

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

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

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

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

函数名需要手工输入。

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

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

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

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

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

计算字段的使用

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

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

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

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

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

计算度量的类型

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

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

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

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

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

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

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

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

常见应用场景

场景1:表中有年龄、姓名字段,想要展示不同年龄段人数占比。
创建数据集,新建维度字段‘年龄区间’,划分不同年龄段:

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

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

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

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

根据表company_sales_record新建数据集。

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

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

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

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

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

4.保存工作表

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

QuickBI助你成为分析师——计算字段功能的更多相关文章

  1. QuickBI助你成为分析师-数据建模(二)

    摘要: 数据集编辑功能界面介绍以及常见问题总结. 在数据集编辑界面可以进行数据建模来更好的展示数据,创建数据集默认将数值类型字段作为度量,日期.字符串等类型作为维度,度量可以根据维度分组展示.下面来介 ...

  2. QuickBI助你成为分析师-数据建模(一)

    摘要: 数据集编辑功能界面介绍以及常见问题总结. 在数据集编辑界面可以进行数据建模来更好的展示数据,创建数据集默认将数值类型字段作为度量,日期.字符串等类型作为维度,度量可以根据维度分组展示.下面来介 ...

  3. Dynamics CRM项目实例之六:积分管理,汇总字段,计算字段,快速查看视图

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复137或者20141228可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me!        博文讲述的主要是如 ...

  4. SQL必知必会 -------- 通配符、计算字段、函数

    1.LIKE操作符 1.1百分号(%)通配符 SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE 'Fish%' 此例子使用了搜索 ...

  5. 1.3(SQL学习笔记)计算字段及函数

    一.计算字段 1.1拼接字段 一般情况下返回的字段是指定列的属性名.如果有时我们对返回格式有特殊要求. 例如,我们需要将显示商品名,即商品价格,同时商品名后面的价格放在括号内. prod_name(p ...

  6. Excel透视表进阶之计算字段、计算项、切片器、页面布局

    计算字段 在透视表的字段列表中通过函数.公式等方式构建一个新的字段 又称虚拟字段,因为计算字段不会出现在数据源中,对于普通字段的操作,都可以对计算字段进行操作 计算字段只能出现在值区域,不能出现在筛选 ...

  7. MySQL快速回顾:计算字段与函数

    9.1 计算字段 存储在数据库表中的数据一般不是应用程序所需要的格式.比如: 如果想要在一个字段中既显示公司名,又显示公式的地址,但这两个信息一般包含在不同的表列中. 城市.州和邮政编码存储在不同的列 ...

  8. 读书笔记--SQL必知必会07--创建计算字段

    7.1 计算字段 字段(field),基本与列(column)含义相同. 利用计算字段可以直接从数据库中检索出转换.计算或格式化过的数据. 计算字段不实际存在于数据库表中,是运行时在SELECT语句内 ...

  9. 使用XtraReport的CalculatedFiled(计算字段)实现RDLC报表中表达式

    DevExpress报表确实强大,花样繁多,眼花缭乱. 这次使用XtraReport开发报表,很多问题在官方的文档中并没有详细的说明,特此记录. 1.XtraReport中FormattingRule ...

随机推荐

  1. 使用Akka的远程调用

    概述 正如其它RPC或者RMI框架那样,Akka也提供了远程调用的能力.服务端在监听的端口上接收客户端的调用.本文将在<Spring与Akka的集成>一文的基础上介绍Akka的remote ...

  2. 执行Python程序的两种方式

    目录 交互式(了解) 命令行式(了解) Python执行程序的三个阶段(掌握) 交互式(了解) 交互式环境下,敲完一条命令按下enter键马上能看到结果,调试程序方便.程序无法永久保存,关掉cmd窗口 ...

  3. 『开源』扩展 JS 的 Date 处理函数

    背景: JS 有自己的 时间类型 Date  —— 但是,在某些情况下 这个对象似乎 不太好用. 本文 基于 JQuery 扩展了一些  JS日期函数,包括: > 字符串 转 Date 对象 万 ...

  4. .NETCore 千星项目模块化开发框架 SimplCommerce 详解

    SimplCommerce 是 github 上过千星的.netcore 商城示例项目,本文详解他的模块化框架现实思路,其业务(如产品.订单)不作介绍.因作者文笔水平很差,它又很值得学习和推荐,就算不 ...

  5. [PHP]日志处理error_log()函数和配置使用

    1.error_log($message,$message_type,$destination,$extra_headers)函数, 2.message_type 是0,发送信息到php.ini配置的 ...

  6. ["1", "2", "3"].map(parseInt)`返回的结果是[1,2,3]?

    今天刷到一道面试题,["1", "2", "3"].map(parseInt)返回的结果是什么呢?可能大家第一个想到的是 [1,2,3],但 ...

  7. 《OdooERP应用与开发基础》试读:第一章-Odoo概述

    文/开源智造联合创始人老杨 本文来自<OdooERP应用与开发基础>的试读章节.书籍尚未出版,请勿转载.欢迎您反馈阅读意见. Odoo是什么   Odoo,以前叫OpenERP,是比利时O ...

  8. Android 启动优化

    对与Android的项目来说,app的启动速度是非常重要的.因为用户打开你的app给别人的第一体验就是打开软件的速度.但是app的启动速度是比较难以缩短的,因为一般来说开发者在app的启动入口都会创建 ...

  9. react-native 金币彩带雨下落动画

    日常项目中,经常遇到一些表情雨/金币雨/彩带雨 等下落的动画,之前做android原生的时候,写过类似的效果,主要通过自定义view 在onDraw里绘制下落的过程,具体可以看下我的这篇github地 ...

  10. Oracle数据库升级注意事项

    1 备份配置参数 数据库升级前的配置参数要备份,如PGA大小 这样数据库升级后还可以升级前的配置,而不至于使用安装升级时的默认配置 2 检查版本兼容 确认数据库升级后是否对生产环境上的代码有影响,如果 ...