玩转报表排名之组内排名

“一眨眼又到年中了,各种业绩考核结果即将出炉。这不头儿明天要对于各个地区的订单情况做个排名分析,吩咐我下班前吧材料准备好,可是离下班就剩下五分钟了!好巧不巧仰慕已久的女神又突然约饭!怎么办?怎么办?!”

嗯 ~ 是时候展现真正的技术了。

【技术装备】:润乾报表

【核心技术】:坐标定位单元格

我们都知道排名分析是常见的分析方法,主要是通过排名让使用者了解当前业务维度下数据记录的次序,多用于业绩考核和对比分析。排名分析中除了之前讲到的总(组间)排名,还涉及到组内排名,这就是今天要放的大招。

组内排名就是在分组内对数据进行独立排名,不同分组之间的排名互不影响。如下图所示,我们除了统计各城市的总排名外,还需要统计这个城市在所属地区下的排名情况:

话不多说,开干!总排名按照我们之前讲解的内容很容易就能做出来:

那地区内各个城市的排名如何计算呢?

如果我们能获取到各个地区下的订单总价,然后对这些数据进行排名就很简单了,在润乾报表中,这确实就是一件很简单的事情,答案是用坐标来获取:通过 C2[A2],就可以获取 A2(地区) 下的 C2(订单总价) 数据了。说到这里,想必你应该都已经制作出来了吧,鼓掌 ~

报表设计如下图所示:

其中,

A2:=ds1.group(货主地区:1, 货主地区!=null)  按照货主地区分组取数

B2:=ds1.group(货主城市; 货主城市:1)       按照货主城市分组取数

C2:=ds1.sum(单价 * 数量)                  计算订单总价

D2:=count(C2[A2]{C2>$C2})+1            计算同一地区下的订单总价排名

E2:=count(C2[`0]{C2>$C2})+1             计算所有地区下的订单总价排名

其中,count(C2[A2]{C2>$C2})+1 是统计 A2 单元格扩展后某一地区内的订单总价大于当前单元格订单总价的城市个数,然后加一,从而实现对订单总价进行组内排名的效果。

一个表达式就实现了组内排名分析,是不是 so easy?

好了,至此,组内排名需求效果已完美实现,我们来回顾一下其中遇到的问题和解决的技巧:

【问题】单元格定位:

【技巧】:前面我们在很多地方都用了类似“count(C2[A2]{C2>$C2})”的表达式,在润乾报表中,这个表达式有一个正式的名称:层次坐标表示法:cellx[`0, Lk:lk]。通过层次坐标表示法,我们就可以定位特定的单元格了。

润乾报表分分钟搞定排名分析,小编也如期赴约,嗷吼吼 ~ 这样的利器可以来一打。

作者:xiaohuihui

链接:http://c.raqsoft.com.cn/article/1533471524092?r=IBelieve

来源:乾学院

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/IBelieve002/p/9764634.html

时间: 2024-10-08 16:17:51

玩转报表排名之组内排名的相关文章

ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法,先分组,然后在组内排名,分组计算等

ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法 今天在使用多字段去重时,由于某些字段有多种可能性,只需根据部分字段进行去重,在网上看到了rownumber() over(partition by col1 order by col2)去重的方法,很不错,在此记录分享下: row_number() OVER ( PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算

sql 分组后 组内排名

语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号. 示例: xlh           row_num 1700              1 1500              2 1085             

分组后取每组内排名的Top N的SQL语句

给个MySQL例子参考 -----查询每门课程的前2名成绩 CREATE   TABLE   StudentGrade( stuId   CHAR(4),         --学号 subId   INT,                 --课程号 grade   INT,                 --成绩 PRIMARY   KEY   (stuId,subId) ) GO --表中数据如下 INSERT   INTO   StudentGrade(stuId,subId,grade

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

这次讲的有些可能是经常用但不会注意到,所以来统一总结一下用法. 我们往往需要临时存储某些结果集.除了用临时表和表变量,还可以使用公用表表达式的方法. 表表达式 期待单个值的地方可以使用标量子查询 期待多个值的地方可以使用多值子查询 在期待出现表的地方可用表值子查询或表表达式 1.派生表 是从查询表达式派生出虚拟结果表的表表达式,派生表的存在范围只是外部查询. 使用形式:from 派生表 as 派生表列名 规则: 所有列必须有名称 列名必须唯一 不允许使用order by(除非指定了top) 不同

关于优化排名,搜索引擎,站内优化的学习摘要

关于优化排名,搜索引擎,站内优化的学习摘要 你的排名你说了算,学习笔记摘要: 优化排名,不同的人员操作效果不一样,关键词排名行情是变量的,对与不同的网站在操作方式要非常慎重,让你的排名你说了算,掌握专业的SEO优化知识. 排序是有规律的还是没有规律的? 就是人为的为它写一些规则,让电脑去执行,是死的,是有规律的.做SEO就是一直在研究排序的规律. 淘宝也是一个搜索引擎,也有排序规则,与人气.销量.评价.价格这些是它的规则. 搜索引擎也有自己的规律,如何寻找规律呢?我们做调查,人数基数越少越不准确

集算器简化SQL式计算之组内运算

在开发数据库应用时,经常会遇到分组后针对组内数据的运算问题,如:列出近3年每年都发表过论文的学生名单,统计全部参加了历次培训的员工,选出每位客户的高尔夫成绩最高的三天等等.SQL完成这类运算较为复杂,一般需要嵌套多层,导致代码难以理解和维护.而集算器擅长表达这类组内计算,且很容易和JAVA或报表工具集成.下面用一个例子来说明. 根据数据库表SaleData统计出2013年中,每个月销售金额均排在前20名的客户名称.SalesData的部分数据如下: 想解决这个问题,需要选出2013年的销售数据,

计算机专业-世界大学学术排名,QS排名,U.S.NEWS排名

2015年美国大学计算机专业排名 计算机专业介绍:计算机涉及的领域非常广泛,其分支学科也是非常多.所以在美国将主要的专业方向分为人工智能,程序应用,计算机系统(Systems)以及计算机理论(theory)这四个部分. 每个部分又有很多的研究方向,诸如人工智能与知识工程,模式识别与图像处理软件,多媒体技术与图形学,智能信息系统工程与软件自动化,数据库与数据仓库,数据挖掘与知识发现,计算机网络技术及其应用,计算机系统与控制,信息系统安全,计算机安全等等. 这些研究方向隶属于以上四个研究方向但是分类

BIRT实现组内跨行计算

问题来源:http://developer.actuate.com/community/forum/index.php?/topic/36160-dealing-with-previous-rows-groups-sorts-and-subtotals/ 组内跨行计算一般要用SQL窗体函数或报表脚本去实现.但代码比較复杂.这样的情况下能够用集算器来辅助报表工具.以下用样例来说明. 库表sample有三个字段,当中id是分组字段.须要设计一张分组表,id是分组字段,明细字段是v1,v2以及计算列c

企业网站如何优化好关键词排名,SEO优化网站排名

随着互联网的发展,很多用户都是通过搜索引擎找到想了解的网站,从这里也能体现出搜索引擎带来的便利,如今的企业公司想要网站关键词排名,都是通过做seo优化将网站优化到搜索引擎的首页,关键词排名到了首页从而更多用户能够了解到公司品牌,公司的产品.企业网站如何优化好关键词排名,SEO优化网站排名?下面为大家分享一下. 网站优化关键词的细节有哪些?该如何去做呢? 1.网站TDK标题 明确好网站的TDK标题很重要,明确好网站的TDK标题更好的去做网站内容,以及标题能拓展更多的长尾词,用户搜索关键词最后搜索引