日期过滤后取排名前50%

楼主
我是社区第221124位番薯,欢迎点我头像关注我哦~
写在前面
大家好,我是从事教育培训行业的Josie,为了实现学生信息数据化,学校去年采购了帆软BI,作为带班老师,跟着学校信息化部门一起学习了fineBI,并将其运用到学生学业成绩分析上。作为学习成果的展示与交流,这里给大家分享一个稍有成就感的案例,实现“时间过滤后取排名后50%的学生成绩”。希望大家能多多评论,互相学习交流。

分析思路
涉及到根据过滤值进行动态计算,所以添加的计算指标应使用聚合函数。1)将“成绩”进行升序排名;2)计算出筛选结果的行数总数;3)设置flag判断,当排名小于总行数的50%,标记为1,反之标记为0;4)将flag拖入结果过滤器,取所有为1的行,即为排名后50%


分析过程
1.数据准备,使用分组表,将学生成绩进行汇总



2.添加计算指标,计算排名 rank_anls()

3.添加计算指标,对学生进行去重计数 counted_agg()

4.添加计算指标,计算学生总数(去重)total()


5.添加计算指标,判断哪些属于排名后50% if()

6.结果过滤,过滤出排名属于后50%的学生成绩


7.取消二次计算的勾选,若不取消,则会对过滤结果进行第二次的flag判断,导致筛选结果里有flag=0的数据


8.最后再拖入时间过滤组件即可



写在最后
写出来后感觉步骤挺简单的,在前面思考时却绕了好些弯,问题一,在自助数据集里通过新增列来计算,实际上是无法实现的,因为数据集里的函数不是聚合的,意味着不能实现动态的选择某一时间后过滤出相应结果,比如排名需要根据时间过滤出的结果重新排。问题二,为什么是取总行数的50%,而不是取排名最大值的50%,后者应该更准确才对,因为可能会出现相同成绩的情况,这个问题通过使用一个简单的数据做了验证,发现排名最大值等于总行数,比如:

分享扩散:
参与人数 +1 F豆 +66 理由
饭团君 + 66

查看全部评分

沙发
发表于 2019-8-23 15:31:10
还没读 看这个排版风格先赞一个~
板凳
发表于 2019-8-23 15:39:11
头像好可爱呀小姐姐
没想到现在已经有老师在用bi了 还这么专业
地板
发表于 2019-8-23 15:42:54
小姐姐必须点赞
5楼
发表于 2019-8-23 15:49:35
小姐姐教什么的  感觉头脑很清楚 分数像是150分应该是高中!就说我的推理对不对
6楼
发表于 2019-8-23 15:53:53
谢谢各位~之前在社区看到有很多同道中人分享经验,这次就小试牛刀,有不足之处希望大家能提出来,一起进步,嘻嘻
7楼
发表于 2019-8-23 16:23:29
奈何本人没文化。
一曲666走天下。
老师真棒。
8楼
发表于 2019-8-25 12:31:33
十二音阶囤 发表于 2019-8-23 15:39
头像好可爱呀小姐姐
没想到现在已经有老师在用bi了 还这么专业

我也是初学没多久,感觉用BI做可视化分析还是非常方便的
9楼
发表于 2019-8-25 12:31:57
浪兔 发表于 2019-8-23 16:23
奈何本人没文化。
一曲666走天下。
老师真棒。

一起加油啊~
10楼
发表于 2019-8-25 12:33:34
十二音阶囤 发表于 2019-8-23 15:39
头像好可爱呀小姐姐
没想到现在已经有老师在用bi了 还这么专业

谢谢~还有待加强呢
11楼
发表于 2019-8-25 13:01:58
饭团君 发表于 2019-8-23 15:31
还没读 看这个排版风格先赞一个~

嘿嘿,有排版强迫症,这样排版看起来比较舒服
12楼
发表于 2019-8-26 14:20:18
BI可以直接分享数据包么 要是能复用的话感觉能省不少事
13楼
发表于 2019-8-26 17:18:21
知足常乐77 发表于 2019-8-26 14:20
BI可以直接分享数据包么 要是能复用的话感觉能省不少事

可以资源导出
14楼
发表于 2019-8-26 17:19:08
知足常乐77 发表于 2019-8-26 14:20
BI可以直接分享数据包么 要是能复用的话感觉能省不少事

建议还是自己操作一遍,简单易上手~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

14回帖数 1关注人数 14391浏览人数
最后回复于:2019-8-26 17:19

返回顶部 返回列表