标题:给位大佬帮帮忙呗,请帮我解答如何算出平均值
只看楼主
Melody6188
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-3-25
结帖率:0
已结贴  问题点数:20 回复次数:13 
给位大佬帮帮忙呗,请帮我解答如何算出平均值
下面是一组数据
SELECT '2019-01' AS Month, 'YT' AS BIZ, 'AP' AS Region, 100.90 AS Revenue
INTO T
UNION ALL
SELECT '2019-01' AS Month, 'ZY' AS BIZ, 'AP' AS Region, 200.90 AS Revenue
UNION ALL
SELECT '2019-01' AS Month, 'AIO' AS BIZ, 'AP' AS Region, 300 AS Revenue
UNION ALL
SELECT '2019-01' AS Month, 'XY' AS BIZ, 'AP' AS Region, 400 AS Revenue
UNION ALL
SELECT '2019-01' AS Month, 'AA' AS BIZ, 'AP' AS Region, 250 AS Revenue
UNION ALL
SELECT '2019-01' AS Month, 'BB' AS BIZ, 'AP' AS Region, 900 AS Revenue
UNION ALL
SELECT '2019-01' AS Month, 'XY' AS BIZ, 'EMEA' AS Region, 400 AS Revenue
UNION ALL
SELECT '2019-01' AS Month, 'AA' AS BIZ, 'EMEA' AS Region, 250 AS Revenue
UNION ALL
SELECT '2019-01' AS Month, 'BB' AS BIZ, 'EAEA' AS Region, 900 AS Revenue

UNION ALL
SELECT '2019-02' AS Month, 'AIO' AS BIZ, 'AP' AS Region, 300 AS Revenue
UNION ALL
SELECT '2019-02' AS Month, 'XY' AS BIZ, 'AP' AS Region, 400 AS Revenue
UNION ALL
SELECT '2019-02' AS Month, 'AA' AS BIZ, 'AP' AS Region, 250 AS Revenue
UNION ALL
SELECT '2019-02' AS Month, 'BB' AS BIZ, 'AP' AS Region, 900 AS Revenue

UNION ALL
SELECT '2019-02' AS Month, 'AIO' AS BIZ, 'EMEA' AS Region, 200 AS Revenue
UNION ALL
SELECT '2019-02' AS Month, 'XY' AS BIZ, 'EMEA' AS Region, 100 AS Revenue
UNION ALL
SELECT '2019-02' AS Month, 'AA' AS BIZ, 'EMEA' AS Region, 700 AS Revenue
UNION ALL
SELECT '2019-02' AS Month, 'BB' AS BIZ, 'EMEA' AS Region, 300 AS Revenue

UNION ALL
SELECT '2019-03' AS Month, 'AIO' AS BIZ, 'AP' AS Region, 300 AS Revenue
UNION ALL
SELECT '2019-03' AS Month, 'XY' AS BIZ, 'AP' AS Region, 400 AS Revenue
UNION ALL
SELECT '2019-03' AS Month, 'AA' AS BIZ, 'AP' AS Region, 250 AS Revenue
UNION ALL
SELECT '2019-03' AS Month, 'BB' AS BIZ, 'AP' AS Region, 900 AS Revenue

建表以后,
求月,地区,总值,平均值(相同区域跨月的平均)
下面的表格是期待的结果,数据略有出入,但大体的意思如图所示
谢谢
搜索更多相关主题的帖子: 平均值 SELECT 期待 数据 UNION 
2020-03-25 10:27
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:10 
SQL语句里面有一条求均值的直接使用就是.
2020-03-25 11:11
Melody6188
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-3-25
得分:0 
回复 2楼 xianfajushi
不是那么简单的,我已经试过了,那样是求不出来我要的结果的。
我要的结果是在group by 以后每个地区的平均值。
2020-03-26 06:27
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:10 
以下是引用Melody6188在2020-3-26 06:27:52的发言:

不是那么简单的,我已经试过了,那样是求不出来我要的结果的。
我要的结果是在group by 以后每个地区的平均值。

1.按“月,地区”分组,求平均

select Month,地区,sum(Revenue) as Revenue,avg(Revenue) as Average from 你表名称 group by 地区,Month
2020-03-26 16:21
Melody6188
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-3-25
得分:0 
回复 4楼 mywisdom88
谢谢您的回复,最后得到的平均值也不是我想要的结果。
我想要图中几个地区加起来以后的平均值,并不是原始表中的平均值。
比如现在的表里地区AP有三个,分别是2150,1850,1550,我想得到的平均值是他们三个加起来除以3以后的那个数字是1850
另外的两个地区也是这样的算法
是否考虑用到partition by这个function呢?
2020-03-28 07:15
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用Melody6188在2020-3-28 07:15:02的发言:

谢谢您的回复,最后得到的平均值也不是我想要的结果。
我想要图中几个地区加起来以后的平均值,并不是原始表中的平均值。
比如现在的表里地区AP有三个,分别是2150,1850,1550,我想得到的平均值是他们三个加起来除以3以后的那个数字是1850
另外的两个地区也是这样的算法
是否考虑用到partition by这个function呢?

那就只按地区分组
select 地区,sum(Revenue) as Revenue,avg(Revenue) as Average from 你表名称 group by 地区
2020-03-30 08:40
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
--SQL语法
--要显示你的那个效果
select t1.*,t2.求和,t2.平均 from 你的表名称 as t1
left join (select 地区,sum(Revenue) as 求和,avg(Revenue) as 平均 from 你的表名称 group by 地区) as t2
on t1.地区=t2.地区

** VFP SQL语法 (区别:SQL的不需要分行,VFP 分行时要用分号 “;”)
**要显示你的那个效果
select t1.*,t2.求和,t2.平均 from 你的表名称 as t1 ;
left join (select 地区,sum(Revenue) as 求和,avg(Revenue) as 平均 from 你的表名称 group by 地区) as t2;
on t1.地区=t2.地区
2020-03-30 08:50
Melody6188
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-3-25
得分:0 
回复 7楼 mywisdom88
谢谢您的建议,但是你的QUERY结果还是跟我想要的有区别
2020-03-31 10:27
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
怎么会有区别呢?
你原表字段和数据?
你要的结果字段和数据是?
2020-03-31 17:21
Melody6188
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-3-25
得分:0 
回复 9楼 mywisdom88
我要的结果就是跟图里几乎是一摸一样的。尤其AP这个地区的值应该是跟图里一摸一样的,另外的两个地区略有区别
特别感谢您能一直回复我,因为我的问题还是没有解决
麻烦您费心
2020-04-01 07:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500566-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.086953 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved