ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > 数据透视表 > 如何汇总出每组队中获得金牌数最多和最少人员的信息

如何汇总出每组队中获得金牌数最多和最少人员的信息

作者:绿色风 分类: 时间:2022-08-18 浏览:145
楼主
海洋之星
如何汇总出每组队中获得金牌数最多和最少人员的信息?

 
答题要求:
1、利用数据透视表完成,包括透视表中的基础操作、sql、计算字段等。
2、不能使用辅助列、VBA。
3、不能修改数据源。
答题截止时间:2010年11月25日
题目.rar
2楼
mn860429
  1. select a.*,b.人员 from (select [组/队],'最多'as 分类,max(金牌数量) as 金牌数量 from [示例$] group by [组/队] union all select [组/队],'最少',min(金牌数量) from [示例$] group by [组/队]) a,[示例$] b where a.[组/队] = b.[组/队] and a.金牌数量 = b.金牌数量


题目.rar
3楼
wjc2090742
1、排序。
2、对人员进行分组。手工比较多。
题目.rar
4楼
水星钓鱼
 
5楼
zm0115
select a.[组/队],a.人员,a.金牌数量,'最多' as 分类 from [示例$]a,(select [组/队],max(金牌数量) as imax from [示例$] group by [组/队])b where a.[组/队]=b.[组/队] and a.金牌数量=b.imax union all
select a.[组/队],a.人员,a.金牌数量,'最少' as 分类  from [示例$]a,(select [组/队],min(金牌数量) as imin from [示例$] group by [组/队])b where a.[组/队]=b.[组/队] and a.金牌数量=b.imin

长了点:)

题目.rar
6楼
君柳
 
7楼
wqfzqgk
画了一个瓢,SQL语句:select * from `示例$`where 金牌数量 in (SELECT  Max(金牌数量)FROM `示例$`GROUP BY `组/队`) union all select * from `示例$`where 金牌数量 in (SELECT  Min(金牌数量)FROM `示例$`GROUP BY `组/队`)
题目.rar
8楼
rongjun
试了无数遍,终于成了
  1. select [组/队],人员,iif(金牌数量 in (select max(金牌数量) from [示例$] group by [组/队]),"最多","最少") as 分类,金牌数量 AS 汇总 FROM [示例$] where 金牌数量 in (select max(金牌数量) from [示例$] group by [组/队]) or 金牌数量 in (select min(金牌数量) from [示例$] group by [组/队])


题目1.rar
9楼
foodorwater
select 组/队=isnull(ta.组队,tb.组/队),分类=isnull(ta.分类,tb.分类),
人员=isnull(ta.人员,tb.人员),金牌数量=isnull(ta.金牌数量,tb.金牌数量) from
(select 组/队,人员,金牌数量,分类='最多' from [Sheet1$] t1 where 金牌数量=(select max(金牌数量) from [Sheet1$] where 组队=t1.组/队))ta full join
(select 组/队,人员,金牌数量,分类='最少' from [Sheet1$] t1 where 金牌数量=(select min(金牌数量) from [Sheet1$] where 组/队=t1.组/队))tb
on ta.组/队=tb.组/队 and ta.分类=tb.分类
10楼
海洋之星
总结:
此题为一道数据透视表题目,本人最初的答案是用SQL语句,与2楼mn860429思路一样,SQL语句为:
  1. select a.*,b.人员 from (select [组/队],'最多'as 分类,max(金牌数量) as 金牌数量 from [示例$] group by [组/队] union all select [组/队],'最少',min(金牌数量) from [示例$] group by [组/队]) a,[示例$] b where a.[组/队] = b.[组/队] and a.金牌数量 = b.金牌数量
思路:利用两SQL子查询分别统计出每组最大值和最小值,并对其重命名为分类,从而产生出一个由[组/队]和分类两个字段组成的一张表,.最后用原表与新产生的表进行重新组合一个在原表基础上增加了分类字段的表,从而完成查询.

第二种方法:为基础操作法:即以群柳、水星钩鱼版主为代表的方法,大概思路是:将人员字段两放入行字段中,分别筛出每组最大值与最小值,并对其进行组合,具体操作可以参考,群柳版主在6楼和操作,这个方法很好,我也学习一下.
答题情况:
除fooddorwater的结果不对外,其他结果均为正确,
11楼
霖少
用水星版主的方法就可以实现啊

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap