Quick BI中lod函数之lod_fixed

news2024/10/4 20:08:04

一、lod函数简介

LOD函数的全称是详细级别表达式(Level Of Detail Expressisons)。它主要是为了克服一些表达式之间计算颗粒度不一致的问题。比如,要计算第一季度各月销售收入占比,这里分子计算颗粒度为’月’,但是分母的计算颗粒度却为’季度’,这时就有可能用到lod函数。

在Quick BI中lod函数有三个,如下:

lod_fixed{<声明维度>:<聚合表达式>[:过滤条件]}

lod_ include{<声明维度>:<聚合表达式>[:过滤条件]}

lod_exclude{<声明维度>:<聚合表达式>[:过滤条件]}

这三个函数最主要的作用,就是在新建计算字段时,规定内部过滤条件、限定外部过滤条件,指明了分组依据。下面详细介绍一下这三个函数。

二、lod_fixed函数介绍

lod_fixed{[维度1][,维度2…]:聚合表达式[:过滤条件]}

  • [维度1][,维度2]...:声明维度,一方面如果外部筛选字段若不属于这里的声明维度则无效,另一方面这里声明的维度也内部聚合运算时的分组依据。使用逗号分隔各个维度。非必须。
  • 聚合表达式:聚合表达式是所执行的计算,用于定义目标维度。
  • 过滤条件:内部过滤条件,对数据表进行过滤的条件,非必须。

lod_fixed的执行逻辑:先按内部过滤条件进行过滤,若外部过滤字段不属于声明维度则无效,再按声明维度进行分组,然后进行聚合计算,形成一张虚表,所以lod_fixed函数返回的是一张表,通常需要聚合后才能使用。

三、数据表---《销售单据表》

月份

区域

客户

订单号

金额

1

南区

南A

d001

100

1

南区

南B

d002

200

1

南区

南C

d003

300

1

北区

北A

d004

350

1

北区

北B

d005

200

2

南区

南A

d006

200

2

南区

南C

d007

300

2

北区

北A

d008

300

2

北区

北B

d009

200

3

南区

南B

d010

150

3

南区

南B

d011

300

3

北区

北B

d012

450

3

北区

北B

d013

300

3

北区

北C

d014

250

四、应用示例

1、示例一:lod_fixed基础用法

  • 总金额 = sum([金额])
  • 区域总金额 = lod_fixed{[区域]:SUM([金额])}

不接受除字段[区域]以外的其他字段的外部筛选,然后以字段[区域]进行分组,并对字段[金额]进行聚合运算(求和)

声明维度中只有一个字段[区域],所以上图表中,字段[客户]并不能影响到‘区域总金额’计算。

  • 全国总金额 = lod_fixed{:sum([金额])}

不接受外部筛选,并对字段[金额]进行聚合运算(求和)。注意这里没指定分组维度,所以最后返回的表只有一行。

声明维度为空,则意味所有字段都不能影响‘全国总金额’

  • 1月各区域总金额 = lod_fixed{[区域]:SUM([金额]):[月份] = '1月’}

首先按[月份] = '1月’进行内部过滤,不接受除字段[区域]以外的其他字段的外部筛选,然后按字段[区域]进行分组,对字段[金额]进行聚合运算(求和)。

  • 1月全国总金额 = lod_fixed{[月份]:SUM([金额]):[月份] = '1月'}

首先按[月份] = '1月’进行内部过滤,然后按字段[月份]进行分组,对字段[金额]进行聚合(求和)。由于过分组维度和过滤条件都是字段[月份]且过滤条件为[月份] = '1月',所以最后返回的表也只有一行。

2、示例二:计算各区域销售金额占比

  • 区域总金额 = lod_fixed{[区域]:SUM([金额])}

区域总金额 = lod_fixed{[区域]:SUM([金额])} ,返回一张分组表

区域

sum(金额)

南区

1550

北区

2050

聚合方式:求和。由于每个分组只有一个值,所以仍是其自身。

区域

sum(金额)

南区

1550

北区

2050

高级计算:占列总计百分比。sum(金额)列总计为3600(1550+2050=3600)因此南区占列总计百分比=1550/3600=43.06%,北区占列总计百分比=2050/3600=56.94%

区域

占列总计百分比

南区

43.06%

北区

56.94%

3、示例三:客户购买次数人数

  • 客户够买次数 = lod_fixed{[客户]:count(distinct [订单号])} ,数据类型设置为维度,以便可以作为横轴使用。
  • 客户数 = count(distinct [客户])

4、示例四:计算月总金额与平均月总金额之差

  • 总金额 = sum([金额])
  • 平均月总金额 = sum(lod_exclude{[月份]:sum([金额])})/sum(lod_fixed{:count(distinct [月份])})
  • 月总金额与平均月总金额之差 = sum(lod_fixed{[月份]:sum([金额])})- sum(lod_fixed{:sum([金额])})/sum(lod_fixed{:count(distinct [月份])})

五、小结

Lod_fixed函数:

1、排除外部过滤条件,若外部过滤条件不属于声明维度(分组维度)则无效;声明维度为空时,则排除全部外部过滤条件。

2、声明维度是内部分组维度,因此lod_fixed本质上返回的是一张分组表。

3、lod_fixed的返回值为一张表,因此聚合字段作为度量使用时,通常需要依据内部分组维度再次进行聚合计算,才能正常显示。

4、lod_fixed的作为维度使用时,直接使用聚合字段下的值作为维度,不需要再次聚合。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UML---用例图,类图

用例图 用例图&#xff08;Use Case Diagram&#xff09;主要描述系统的功能需求和参与者与系统之间的交互。它是用户与系统交互的最简表示形式&#xff0c;展现了用户和与他相关的用例之间的关系。用例图被视为系统的蓝图&#xff0c;通过它&#xff0c;人们可以获知系统不同种…

【win】vscode无法使用ctrl+shift+p快捷键的解决方案

本文首发于 ❄️慕雪的寒舍 今天使用vscode的时候遇到的这个问题&#xff0c;明明快捷键设置的是ctrlshiftp&#xff0c;但是在电脑上怎么敲都敲不出来&#xff0c;因为用这个快捷键打开命令面板都习惯了&#xff0c;也不想换&#xff0c;就在找原因。 同时百度的时候还遇到了…

Camera2+OpenGL ES+MediaCodec+AudioRecord实现录制音视频写入H264 SEI数据

记录一下学习过程&#xff0c;得到一个需求是基于Camera2OpenGL ESMediaCodecAudioRecord实现录制音视频。 需求&#xff1a; 在每一帧视频数据中&#xff0c;写入SEI额外数据&#xff0c;方便后期解码时获得每一帧中的自定义数据。点击录制功能后&#xff0c;录制的是前N秒至…

Echars3D 饼图开发

关于vue echart3D 饼图开发 首先要先下载 "echarts-gl", 放在main.js npm install echarts-gl --save <template><div class"cointan"><!-- 3d环形图 --><div class"chart" id"cityGreenLand-charts"><…

Git版本管理工具(实战进阶):零基础到起飞实战项目完整篇 →Git学习一篇就够 从基本指令、到本地仓库、远程仓库、实战项目开发演练介绍超详细!

heima 李师傅最新版 Git的讲解 文章目录 Git在实战项目开发使用功能学习01.Git 初识02.Git 仓库03.Git 的三个区域04.Git 文件状态05.Git 暂存区作用06.练习-登录页面07.Git-切换版本08.删除文件09.忽略文件10.分支的概念11.练习-登录 bug 修复12.分支-合并与删除13.分支-合并与…

three.js CSS3DRenderer、CSS3DObject渲染HTML标签

有空的老铁关注一下我的抖音&#xff1a; 效果&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red;position: relative;"><…

工业自动化中与多台PLC通讯的基本指南

与多台PLC进行通讯是工业自动化中常见的需求。通常&#xff0c;一台THM&#xff08;通常是触摸屏或人机界面&#xff09;会与多台PLC进行通讯&#xff0c;以实现数据交互和控制功能。以下是一个基本的步骤指南&#xff0c;用于实现1台THM与多台PLC的通讯&#xff1a; 确定通讯…

本地部署GeoServe服务并结合内网穿透实现任意浏览器远程访问

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现&#xff0c;利用GeoServer可以方便地发布地图数据&#xff0c;允许用户对要素数据进行更新、删除、插入…

【2024美赛C题】网球大佬带你无背景压力分析解题思路!

2024美赛数学建模c题思路分享 加群可以享受定制等更多服务&#xff0c;或者搜索B站&#xff1a;数模洛凌寺 联络组织企鹅&#xff1a;936670395 以下是C题老师的解题思路&#xff08;企鹅内还会随时更新文档&#xff09;&#xff1a; 1背景介绍 2024MCM问题C&#xff1a;网…

LeetCode:283. 移动零

283. 移动零 1&#xff09;题目2&#xff09;代码方法一&#xff1a;两层for循环方法二&#xff1a;使用双指针 3&#xff09;结果方法一结果方法二结果 1&#xff09;题目 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的…

STM32目录结构

之前一直头疼的32目录&#xff0c;比51复杂&#xff0c;又没有C规律&#xff0c;也不像python脚本文件关联不强&#xff0c;也不像工整的FPGA工程&#xff0c;编的时候到处放&#xff0c;爆出的错千奇百怪。短暂整理了一个&#xff0c;还是没有理得很轻。 startup_stm32f10x_m…

Vue-51、Vue技术github案例(发送ajax)

1、在index引入bootstrap.csss (注意第三方css库最好在indxe里面引入) 2、List.vue源码 <template><div class"row"><div v-show"users.length" class"card" v-for"p in users" :key"p.login"><a :hr…

ES6中新增Array.from()函数的用法详解

目录 Map对象的转换 Set对象的转换 字符串的转换 类数组对象的转换 Array.from可以接受三个参数 ES6为Array增加了from函数用来将其他对象转换成数组。当然&#xff0c;其他对象也是有要求&#xff0c;也不是所有的&#xff0c;可以将两种对象转换成数组。 1、部署了Iter…

深圳市金航标电子有限公司

深圳市金航标电子有限公司&#xff0c;技术骨干来自清华大学和电子科大&#xff0c;吸纳海归专业人才&#xff0c;可以研制高可靠高性能 天线和连接器产品&#xff0c;在东莞塘厦和广西柳州的生产基地有自动化生产线多条&#xff0c;具有大批量产品的生产交付能力。金 航标电…

地下管道守护者:“智能地钉”如何守护电缆安全?

如果大家平时出行仔细观察的话&#xff0c;会发现一些道路地面上有许多“小圆盘”&#xff0c;晚上的时候还会发光。不过&#xff0c;这可不是什么照明灯&#xff0c;这些“小圆盘”叫作智能地钉&#xff0c;而且仔细看的话&#xff0c;能够发现它的内部表面是一块太阳能板&…

HTTP协议的8种请求方式及常用请求方式的解析

前言 今天想起来写这一篇文章&#xff0c;主要是无意中想起来当初面试的时候我的以为面试官曾问过我这个问题&#xff0c;因此我对此整理一下&#xff0c;希望对大家有所帮助。 简单介绍 TTP是超文本传输协议&#xff0c;其定义了客户端与服务器端之间文本传输的规范。HTTP默…

python-分享篇-Turtle海龟-画图

文章目录 背景颜色画圆太阳花树椭圆 背景颜色 import turtlepen turtle.Turtle() turtle.Screen().bgcolor("blue") pen.color("cyan") for i in range(10):for i in range(2):pen.forward(100)pen.right(60)pen.forward(100)pen.right(120)pen.right(36…

GEDepth:Ground Embedding for Monocular Depth Estimation

参考代码&#xff1a;gedepth 出发点与动机 相机的外参告诉了相机在世界坐标系下的位置信息&#xff0c;那么可以用这个外参构建一个地面基础深度作为先验&#xff0c;后续只需要在这个地面基础深度先验基础上添加offset就可以得到结果深度&#xff0c;这样可以极大简化深度估…

使用goland IDE编写go windows ui

最近突发奇想&#xff0c;想实现一款工作节奏的提示安排小闹钟。那首先解决的就是UI。本人擅长go语言。那go在windows ui的探索肯定有人做过了吧。一查还真有&#xff0c;通过知乎&#xff0c;csdn等查到目前支持最好的就是walk库了。那走起试试。 一、拷贝go代码 将官网例子…

玩转全新nova12系列熄屏显示,做最潮nova星人!

熄屏显示一直是大家非常喜欢的一项功能&#xff0c;可以让我们在不影响他人的情况下随时随时地查看消息提醒。华为nova12全系列机型均支持熄屏显示功能&#xff0c;且在系列上更是有重磅升级&#xff0c;熄屏显示不再只局限于一小块区域&#xff0c;整个屏幕都可以作为显示空间…