首页 > 其他分享 >使用ADDCOLUMNS 和 SUMMARIZE的组合

使用ADDCOLUMNS 和 SUMMARIZE的组合

时间:2022-12-08 16:02:25浏览次数:82  
标签:ADDCOLUMNS CALCULATE 组合 SUMMARIZE 上下文 Store 函数

先说结论,建议不要使用SUMMARIZE函数来增加扩展列,而使用ADDCOLUMNS 和 SUMMARIZE的组合。虽然SUMMARIZE 函数被标记为弃用,但是有时使用起来真的非常方便。

ADDCOLUMNS(
    SUMMARIZE( <table>, <group by column> ),
    <column_name>, CALCULATE( <expression> )
)

注意,当<expression>包含聚合函数时,CALCULATE函数是必须的。这是因为ADDCOLUMNS函数根据SUMMARIZE的结果产生一个行上下文(row context),这个行上下文不会自动转换为过滤器上下文(filter context),而CALCULATE(<expression>) 会把行上下文转换为等价的过滤器上下文。

举个例子,使用以下的代码,来统计每个Country的函数,由于行上下文无法自动转换为filter context,迭代函数返回的是总行数:

ADDCOLUMNS (
    SUMMARIZE (
        Store,
        Store[Country]
    ),
    "Stores", COUNTROWS ( Store )
)

 

 

 当添加CALCULATE函数后,CALCULATE函数把行上下文自动转换为filter context,统计的是每一个Coutnry对应的行数:

SUMMARIZE (
    Store,
    Store[Country],
    "Stores", CALCULATE(COUNTROWS( Store ))
)

 

参考文档:Best practices using SUMMARIZE and ADDCOLUMNS

标签:ADDCOLUMNS,CALCULATE,组合,SUMMARIZE,上下文,Store,函数
From: https://www.cnblogs.com/ljhdo/p/16966339.html

相关文章

  • 力扣-77-组合
    直达链接这个问题应该就是我想找的答案了,把k=1~n全部输出一遍然后如果k=n,那就是全排列问题不对,还是不一样,这里只考虑数字组合,而没考虑数字顺序也就是排列问题两种解法,第......
  • 算法练习:排列组合之子集合
    问题描述输入一个含有不同数字的序列,输出其所有子集合(含空集)。要求:1)集合里元素有序排列;2)输出结果不含有重复集合 举例输入序列{3,1,2}输出:{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3} 问......
  • 算法练习:排列组合之全排列
    问题描述输入一个不含相同数字的序列,输出所有可能的排列。 问题分析与之前的“求解子集合”类似,使用递归方法:典型的在for循环内调用递归函数。不同的是,必须等到所有的数字......
  • 算法练习:排列组合之组合和
    问题描述给出一组不同的正整数序列和一个目标值,求出所有可能的组合,使得组合里所有元素和为目标值。要求:1)每个组合里的元素按照升序排列。2)输出组合里不含有重复的组合。3)输......
  • GUI-6-练习代码组合框及按钮-2022-12-7
    packagecom.lr.guifirstdemo;importjava.awt.*;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;publicclasstestDemo05{publicstatic......
  • A组合方案 (n个选m个)
    递归实现组合型枚举从1∼n这n个整数中随机选出m个,输出所有可能的选择方案。输入格式两个整数n,m,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方......
  • Vim 配置 C/C++使用组合快捷键格式化文件
    安装vim插件管理工具#vim插件管理-插件https://github.com/VundleVim/Vundle.vimgitclonehttps://github.com/VundleVim/Vundle.vim.git~/.vim/bundle/Vundle.vim......
  • 【e3项目学习二】——zk与dubbo的组合运用
    【zk】1.zk简介官方推荐使用zookeeper注册中心。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册......
  • js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合
    现在有一批手机,其中颜色有['白色','黑色','金色','粉红色'];内存大小有['16G','32G','64G','128G'],版本有['移动','联通','电信'],要求写一个算法,实现[['白色','16G','移动'......
  • 关于组合计数的一个小技巧
    组合计数小技巧一个关于组合计数的小技巧:这个问题是这样的,给定\(n\)个数\(a_1\sima_n\),要求出这\(n\)个数中所有组合的乘积之和例如\(n=3\)时,即为:\(a_1+a_2+a_3+a_1a_2......