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

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. Casdoor 开始

    Casdoor 是一个基于 OAuth 2.0 / OIDC 的中心化的单点登录(SSO)身份验证平台,简单来说,就是 Casdoor 可以帮你解决用户管理的难题,你无需开发用户登录.注册等与用户鉴权 ...

  2. Selenium - 浏览器配置(4) - 打开无痕浏览器

    Selenium - 浏览器配置 无痕浏览器 开启谷歌浏览器的无痕浏览模式: from selenium import webdriver # 引入浏览器配置 chrome_options = web ...

  3. Module not found: Error: Can't resolve 'axios' in 'D:\BaiduSyncdisk\vue-cli-project\dc_vue3\src\utils'

    Module not found: Error: Can't resolve 'axios' in 'D:\BaiduSyncdisk\vue-cli-project\dc_vue3\src\util ...

  4. c3p0的配置及简单应用

    首先简单了解一下JDBC和c3p0 Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸 ...

  5. [学习笔记]解决因C#8.0的语言特性导致EFCore实体类型映射的错误

    今天下午在排查一个EF问题时,遇到了个很隐蔽的坑,特此记录. 问题 使用ef执行Insert对象到某表时报错,此对象的Address为空: 不能将值 NULL 插入列 'Address',表 'dbo ...

  6. 这可能是最全面的Java面试八股文了

    Java的特点 Java是一门面向对象的编程语言.面向对象和面向过程的区别参考下一个问题. Java具有平台独立性和移植性. Java有一句口号:Write once, run anywhere,一次 ...

  7. C温故补缺(十八):网络编程

    计算机网络 参考:TCP三次握手详解. OSI模型 简单分层: 其中,链路层还可以分出物理层和数据链路层.应用层可以分出会话层,表示层和应用层. 七层模型: 链路层:只是物理的比特流和简单封装的数据帧 ...

  8. C++面试八股文:C和C++有哪些区别?

    某日小二参加XXX科技公司的C++高级工程师开发岗位1面: 面试官:请问C和C++的区别有哪些? 小二:C++是C的超集. 面试官:还有吗? 小二:... 面试官:面试结束,回去等消息吧. 小二:淦. ...

  9. LeetCode 周赛 348(2023/06/05)数位 DP 模板学会了吗

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 加入知识星球提问! 往期回顾:LeetCode 单周赛第 347 场 · 二维空间上的 LIS 最长递增子序列问题 ...

  10. R 语言常用操作与函数汇总

    总结了一下 R 语言中常用的一些操作与函数使用,抛砖引玉,分享一下给大家,如有错误的地方欢迎留言指正. 怎样显示 R 软件中某个包中包含的全部数据集? > library(MASS)> d ...