之前的一期,白茶曾经分享过一次关于迭代循环的文章《迭代循环丨SUMX函数》,本期咱来深入聊聊这个问题。

聚合器

在大部分数据模型中,几乎都需要我们对数据进行聚合类的操作。DAX中提供了很多聚合类的函数,最常用、频率最高的是SUM函数。比如说这种:

销售额 =
SUM ('表'[销售] )

这就给很多人造成了误解,聚合器就是SUM函数,这是不对的。还有很多其他的,比如说:AVERAGE求平均,MIN求最小值,MAX求最大值。这些函数本质上都是聚合器,只不过是聚合之后返回的结果不同罢了。更确切的说,聚合,这个定义是一种思维方式。

迭代器

一些特定的函数可以对整个表进行聚合,或者根据行上下文一行一行的去筛选,这类函数就属于迭代器。他们的工作方式针对的不是一个列,而是一个表。大部分聚合器都有一个对应的迭代器函数,比如说:SUM对应SUMX,MIN对应MINX,MAX对应MAXX等等。

看到这是否有个疑问,就是是不是迭代器都有一个聚合函数呢?其实不是的,比如说FILTER函数啊、GENERATE函数、CROSSJOIN函数等等。

通常,迭代器至少需要两个参数,一个是需要扫描的表,一个是针对每一行的表达式。比如说下面的这个度量值代码:

间隔 度量值 =
INT ( SUMX ('示例','示例'[出货日期] ) - SUMX ('示例','示例'[下单日期] ) )

这种就是典型的例子,扫描表,提取对应值,进行求和。

聚合器与迭代器

我们不妨进行的更深入一点讨论,实际上聚合器就是阉割版的迭代器,它本身函数的内部也是进行迭代匹配的,不然怎么进行相关运算呢?对吧?

想一下,SUM求和某一列,不就是按照行上下文顺序,一行一行的相加最后求和么?怎么可能不算迭代?

所以白茶的理解就是,其实聚合器本身在内部,就封装了符合自己运算逻辑的迭代器。

这里提一下**@嘿**大佬对我的点拨,受益匪浅啊。大佬是这么说的,迭代器也好,聚合器也好,它的核心关键点在于取值。逻辑顺序是这样的:

迭代器→激活行上下文→行上下文取值→值运算

明白了这个逻辑,心理对一些函数的理解就多了一些明悟。

MIN与MAX

这里单独提一下这俩函数,其他的聚合器基本上都是针对数值生效的,但是MIN和MAX对于文本也是生效的。比如我需要对表中一列客户信息进行迭代,可以使用MINX(MAXX)+MIN(MAX)的模式。


小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球[PowerBI丨需求圈])

这里是白茶,一个PowerBI的初学者。

下面这个知识星球是针对有实际需求的小伙伴,有需要的请加入下面的知识星球。

阅读圣经丨聚合与迭代相关推荐

  1. 阅读圣经丨关于DAX(修订版)

    "基础不牢,地动山摇". 最近,有很多小伙伴和白茶在聊天,也会涉及到一些度量值的编写,经常能遇到说大脑当机的情况.比如说明明自己知道如何去写,但是大脑思维却停止运转,想不起来的情况 ...

  2. 阅读圣经丨测试上下文理解

    在<圣经2>中,关于上下文理解这一块,白茶看到两个有意思的小测试,决定分享给各位小伙伴. 这是一份销售数据,将其导入到PowerBI中. 结果如图. 现在开始进行问题描述. 问题一: 为数 ...

  3. 论文阅读:日志聚合 - 关联分析

    2020/06/10 - 本篇随笔主要记录自己在阅读文章[1]时的笔记:这篇论文居然是2001年时候发表的,但是哪怕近几年也有人在研究这个东西,没有时间去看具体的发展历程了,这篇论文也不知道质量怎么样 ...

  4. 学生如何提高专业英文阅读能力丨传道授业

    本文针对本科生和一.二年级的博士.硕士生,对高年级的博士生和博士后也应该有参考价值. 撰文 | 施一公 从小到大,我感性思维多一些,不善于读书.85至89年在清华生物系读本科期间,从未读过任何一种英文 ...

  5. 日神领道----阅读圣经有感

    2019独角兽企业重金招聘Python工程师标准>>> 学习圣经有一段时间啦,灵命在一天天增长. 今天谈谈拜师学艺 在过去的传统中,如果一个人想要学习谋生技能,他必需拜师学艺,一般学 ...

  6. Django丨聚合与分组查询

    多表实例 聚合查询 聚合查询函数时对一组值执行计算,并返回单个值 Django使用聚合查询前要先从django.db.models引用Avg.Max.Min.Count.Sum(首字母大写) from ...

  7. mysql的聚合查询_MySql聚合查询

    SELECT语句的查询结果是元组的集合,所以多个SELECT语句的结果可进行集合操作. 集合操作主要包括并操作UNION.交操作INTERSECT.差操作EXCEPT. 注意,参加集合操作的各查询结果 ...

  8. Facebook也大干新闻聚合 “新闻快读”向所有媒体开放

    去年五月,Facebook推出了不离开本站直接阅读新闻的聚合服务"新闻快读"(Instant Articles),用户载入文章的速度大增,不过当时只面向一些特定合作的新闻机构.日前 ...

  9. 阅读软件怎么添加书源_书迷小说|手机阅读软件 千个书源 搜索换源

    点击上方"黑科技专家",设为星标 黑科技软件,第一时间送达 由于公众号改版,现在的公众号消息已经不再按照时间顺序排送了.因此小伙伴们就很容易错过精彩内容.喜欢黑科技的小伙伴,可以将 ...

  10. 论文阅读技巧之三遍法

    本文介绍了三遍法及其在文献调查中的应用. 关键的思想是,你应该以三遍的时间来阅读论文,而不是从一开始就一直读到最后.每个pass都实现了特定的目标,并建立在前一个遍的基础上: 第一个pass让您对本文 ...

最新文章

  1. opencv中ArUco模块实践(1)
  2. mysql绿色版的应用5.7
  3. sql 增加自增列 耗时长_SQLServer为已有数据的表添加一个自增列
  4. Javascript高级调试——console.table()
  5. 计算机网络英文面试题,计算机网络面试题整理
  6. php header 404 nginx,ThinkPHP在nginx下怎么设置?路由统统404,疯了~
  7. SICP习题解答2.22
  8. Altium Designer(六):Make Library
  9. iphone app开发实战很重要:《iPhone App开发实战手册》读后感
  10. YII 返回值为JSON格式
  11. nginx 二级目录 php,nginx两个tp程序一个放到二级目录下,我们要如何访问
  12. redis java 视频教程_redis从入门到精通视频教程【50讲全】
  13. Eclipse汉化教程2021新版
  14. 记录ubuntu18.04安装QQ过程
  15. SAN海量存储解决方案
  16. 测试软件的稳定性,客户端稳定性测试
  17. w3c标准语言的是什么,W3C标准及其规范 - Somuns的个人空间 - OSCHINA - 中文开源技术交流社区...
  18. 问题解决:ERROR: Cannot uninstall 'llvmlite'.
  19. python中的方法是什么_Python方法
  20. C++ 与 elang 通信注意问题

热门文章

  1. 某热门单击手游lua解密.md
  2. 土地利用转移矩阵图怎么做_土地利用转移矩阵怎么分析excel?
  3. 【leetcode刷题】[简单]427. 建立四叉树(construct quad tree)-java
  4. 计算机建筑制图实践报告,工程建筑实习报告范文(精选5篇)
  5. 以4%参数量比肩GPT-3!Deepmind 发布检索型 LM,或将成为 LM 发展新趋势!?
  6. PS如何修改扩展插件的名字(Photoshop重命名插件教程)
  7. Overleaf 中文硕博论文LaTex模板
  8. TOPSIS(优劣解距离法)
  9. 飞凌单片机解密_常见的IC芯片解密方法与原理解析!
  10. ARM、DSP、FPGA比较