一:思维导图&数据源示例

1.1思维导图

1.2示例数据源

二:参数构成

三:案例度量值

基础度量值

总销量 = CALCULATE(SUM('数据源'[销量]))
总销售额 = CALCULATE(SUM('数据源'[销售额]))

RANK度量值

RANK排名 =
RANK(
    ---MAKE BY SIMONE
    ---第一参数,skip/dense,可选参数,相同值排名处理, 省略是会默认为skip
    SKIP,
    ---第二参数,可选参数,表表达式,计算排名的表,这里选择了数据源中的产品和产品分类列,是因为我们演示的表中,只拉了这两个维度的统计字段,如果涉及更多层级的计算,
    ---可以在ALLSELECTED参数中,新增字段,这样可以轻松实现多层级、多字段排名
    ALLSELECTED('数据源'[产品],'数据源'[产品分类]),
    ---第三参数,可选参数,排序依据,如省略第2参数必须指定表,这里选择了【总销量】和【总销售额】两个字段来进行排名依据,计算排名中会根据参数的位置确定优先级
    ---例如,我们将总销量放在第一个参数位置,那么会优先根据总销量排名,当遇到总销量一样的,才会根据总销售额继续排名
    ORDERBY([总销量],DESC,[总销售额],DESC),
    ---第四参数,可选参数,暂时没有用,这里直接用逗号跳过
      ,
    ---第五参数,可选参数,分区依据,如果省略,会默认为一个分区,即不会分区,在这里,我们指定了【产品分类】,可以简单理解为,我们确定了排名的区域,即根据我们奶茶的类型进行排名
    ---有点类似与组内排名,而这里的参数相当于指定组,然后根据上面参数的逻辑去排名
    PARTITIONBY('数据源'[产品分类])
    )

RANKX度量值

RANKX排名 = RANKX(ALL('数据源'[产品]),[总销量])

将对应的度量值拉入表格视觉对象,我们可以看到,RANK函数实现了多字段的排名功能,并且可以分组去进行多字段排名。而RANKX实现不了,或者说需要其他辅助,才能实现同样的效果。

四:注意点

1:ALLSELECTED参数,应该和度量值应用的行上下文的字段一致

2:PARTITIONBY参数,要注意理解分区概念,分区应该是第一步,后续的排序逻辑,都是基于分区后的数据,进行排序

#Powerbi 1分钟学会,RANK函数,多字段排名函数.的更多相关文章

  1. sqlserver的over开窗函数(与排名函数或聚合函数一起使用)

    首先初始化表和数据 create table t_student(   Id INT,   Name varchar(),   Score int,   ClassId INT ); insert i ...

  2. SQL Server进阶(八)查询——开窗函数、四大排名函数、透视数据、逆透视数据

    概述 ROW_NUMBER() OVER(PARTITION BY CustId ORDER BY ID DESC) https://www.jb51.net/article/75533.htm 开窗 ...

  3. 你真的会玩SQL吗?表表达式,排名函数

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  4. SQL Server排名函数与排名开窗函数

    什么是排名函数?说实话我也不甚清楚,我知道 order by 是排序用的,那么什么又是排名函数呢? 接下来看几个示例就明白了. 首先建立一个表,随便插入一些数据. ROW_NUMBER 函数:直接排序 ...

  5. SQL ServerOVER 子句,over开窗函数,SQL SERVER 开窗函数

    https://technet.microsoft.com/zh-cn/library/ms189461(v=sql.105).aspx http://www.cnblogs.com/85538649 ...

  6. MySQL实现SQL Server排名函数

    最近在MySQL中遇到分组排序查询时,突然发现MySQL中没有row_number() over(partition by colname)这样的分组排序.并且由于MySQL中没有类似于SQL Ser ...

  7. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  8. 5分钟学会使用Less预编译器

    5分钟学会使用Less预编译器 Less是什么? LESS CSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法为CSS赋予了动态语言的特性,如变量.继承.运算.函数等,更方便 ...

  9. 【grunt第二弹】30分钟学会使用grunt打包前端代码(02)

    前言 上一篇博客,我们简单的介绍了grunt的使用,一些基础点没能覆盖,我们今天有必要看看一些基础知识 [grunt第一弹]30分钟学会使用grunt打包前端代码 配置任务/grunt.initCon ...

  10. 《量化投资:以MATLAB为工具》连载(2)基础篇-N分钟学会MATLAB(中)

    http://www.matlabsky.com/thread-43937-1-1.html   <量化投资:以MATLAB为工具>连载(3)基础篇-N分钟学会MATLAB(下)     ...

随机推荐

  1. 2021-05-23:给定一个字符串str,str表示一个公式,公式里可能有整数、加减乘除符号和左右括号。返回公式的计算结果,难点在于括号可能嵌套很多层。str=“48*((70-65)-43)+8*

    2021-05-23:给定一个字符串str,str表示一个公式,公式里可能有整数.加减乘除符号和左右括号.返回公式的计算结果,难点在于括号可能嵌套很多层.str="48*((70-65)-4 ...

  2. 2021-11-13:至少有 K 个重复字符的最长子串。给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。提示:1

    2021-11-13:至少有 K 个重复字符的最长子串.给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k .返回这一子串的长度.提示:1 ...

  3. phpstudy-sqlilabs-less-3

    题目:GET - Error based - Single quotes with twist 基于错误的单引号GET型变形注入 ?id=1 )and 1=2--+ ?id=1 "and 1 ...

  4. jQuery 添加水印

    jQuery 添加水印 <script src="../../../../AJs/jquery.min.js"></script> <script t ...

  5. 自然语言处理 Paddle NLP - 预训练语言模型及应用

    什么是语言理解? 关于疫情的一段对话: 中国:我们这边快完了 欧洲:我们这边快完了 中国:我们好多了 欧洲:我们好多了 挑战: 语言的复杂性和多样性 多义/同义/歧义现象 灵活多变的表达形式 语言背后 ...

  6. NameError: name 'List' is not defined

    当在python出现该问题是,使用from typing import List.

  7. 自然语言处理 Paddle NLP - 文本语义相似度计算(ERNIE-Gram)

    基于预训练模型 ERNIE-Gram 实现语义匹配 1. 背景介绍 文本语义匹配任务,简单来说就是给定两段文本,让模型来判断两段文本是不是语义相似. 在本案例中以权威的语义匹配数据集 LCQMC 为例 ...

  8. 如何通过数据warehouse更好地支持企业数字化转型战略

    目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 5. 优化与改进 <如何通过数据 warehouse 更好地支持企业数字化转型战略> 随着企业数 ...

  9. k8s驱逐篇(6)-kube-controller-manager驱逐-NodeLifecycleController源码分析

    概述 k8s v1.16版本中NodeController已经分为了NodeIpamController与NodeLifecycleController,本文主要介绍NodeLifecycleCont ...

  10. Electron App 安装包定制 -- Inno Setup 脚本 Pascal Scripting 初探

    在做 Electron 项目时,有个需求是安装包安装时要给客户机上装上某个软件 在查看 Inno Setup 官网后发现是通过 .iss 脚本编写实现自定义安装过程 可在 .iss 内可以添加脚本为安 ...