壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1365|回复: 13

求平均人数怎么求

  [复制链接]
发表于 2012/5/28 16:15:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
现在我底层的表是做到每个月汇总的人数,那我现在要求平均人数,怎么求?
譬如说,时间选择条件是201101-201112,那么平均人数就是十个个月的合计/12,如果时间选择201105-201110,那么平均人数为6个月的合计/6,分子是随前面累计的时间变化而变化的。
各位高手,这个要怎么弄?
发表于 2012/5/28 16:33:56 | 显示全部楼层
大的时间-小的时间+1?
 楼主| 发表于 2012/5/28 16:41:09 | 显示全部楼层
lxiaoyaa 发表于 2012/5/28 16:33
大的时间-小的时间+1?

我感觉这样似乎不行吧,感觉用变量似乎比较好
发表于 2012/5/29 15:11:17 | 显示全部楼层
这个可以用avg加sum的组合,分子就用大的时间-小的时间+1;分母的话就用sum。最后来个avg。
这个测试下就知道了
发表于 2012/5/31 12:43:00 | 显示全部楼层
用表示变量,得到两个时间,然后在列里面写公式运算?
发表于 2012/5/31 16:20:43 | 显示全部楼层
不用,直接用公式算
avg(【人数(filter时间=初始时间) - 人数(filter时间=结束时间)】/[to_num(结束时间)-to_num(初始时间)]  ),
这样的话,其实不需要变量的
 楼主| 发表于 2012/6/4 18:03:09 | 显示全部楼层
本帖最后由 ruoxue67 于 2012/6/5 09:05 编辑
ephram 发表于 2012/5/31 16:20
不用,直接用公式算
avg(【人数(filter时间=初始时间) - 人数(filter时间=结束时间)】/[to_num(结束 ...



可是这里初始时间跟结束时间都是根据选择条件来的 也就是说会变化的
发表于 2012/6/5 16:36:40 | 显示全部楼层
这里的高人还是挺多的
发表于 2012/6/6 17:40:32 | 显示全部楼层
ruoxue67 发表于 2012/6/4 18:03

可是这里初始时间跟结束时间都是根据选择条件来的 也就是说会变化的

现在我底层的表是做到每个月汇总的人数,那我现在要求平均人数,怎么求?
譬如说,时间选择条件是201101-201112,那么平均人数就是十个个月的合计/12,如果时间选择201105-201110,那么平均人数为6个月的合计/6,分子是随前面累计的时间变化而变化的。
各位高手,这个要怎么弄?

你想要的效果不就是这样吗?
发表于 2012/6/7 10:02:59 | 显示全部楼层
LZ没有把你的需求描述清楚,我假设你有如下两种情况:

先来看第一种吧,最简单的一种:
T02 Per Name Month        1- Revenue         AVG(1- Revenue)
2008 / 01        325,436        1,375,000
2008 / 02        812,399        1,375,000
2008 / 03        1,569,851        1,375,000
2008 / 04        2,069,683        1,375,000
2008 / 05        2,636,227        1,375,000
2008 / 06        3,403,806        1,375,000

对T02 Per Name Month字段过滤,然后后面新增一列写公式 AVG(1- Revenue)即可。
这种是有月份字段,所以比较简单,不过要注意avg是忽略空值的哦

第二种:
总销量        平均销量
16500000        1375615.874

月份字段不呈现出来,只作过滤用,这个时候怎么办呢?很简单,用总销量除以月份数就OK了,

但是这个月份数怎么来呢?

这里我们引用一个概念,叫时间事实表

简单来说 就是用时间维表作为时间事实表的逻辑来源,然后在时间事实表上创建相关指标,如果月份数,年数等
聚合规则设置为count distinct 即可。


如果还不明白,改天写一篇帖子吧
 楼主| 发表于 2012/6/13 16:07:30 | 显示全部楼层
ephram 发表于 2012/6/6 17:40
现在我底层的表是做到每个月汇总的人数,那我现在要求平均人数,怎么求?
譬如说,时间选择条件是201101 ...

关键是怎么去用FILTER求得到开始时间与结束时间呢
 楼主| 发表于 2012/6/13 16:15:11 | 显示全部楼层
lianle987 发表于 2012/6/7 10:02
LZ没有把你的需求描述清楚,我假设你有如下两种情况:

先来看第一种吧,最简单的一种:

话说真没看明白
其实我的需求很简单
事实表中每个月的人数都在变化,我就要求任意个月份的平均人数,如下面的
年月
人数
201101
51
201102
61
201103
71
201104
82
201105
90
201106
85
201107
95
201108
100
201109
101
201110
101
201111
102
201112
93
201201
98
如我要求201107-201109这三个月的平均人数=(85+100+101)/3,关键问题就是这个3怎么得到?
发表于 2012/6/14 09:24:29 | 显示全部楼层
ruoxue67 发表于 2012/6/13 16:15
话说真没看明白
其实我的需求很简单
事实表中每个月的人数都在变化,我就要求任意个月份的平均人数,如 ...

那这样的话,更简单了,你可以加一个num字段,作为时间字段的是一个key值,然后分子减法用这个key值去做计算,这样就能得出分子。
key值       年份              人数
1              201101            10
2              201102            20
3              201103            30

这样,分子的处理就是 (3-1)+1

其实很多方法都可以通过sql去实现,在我们还不熟悉BIEE功能的情况下,通过后台sql去实现,我觉得是个很好的途径。
 楼主| 发表于 2012/6/18 14:34:30 | 显示全部楼层
似乎可以用BIEE中TIMESTAMPDIFF来求,多谢各位了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 07:22 , Processed in 0.015644 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表