楼主 海洋之星 |
如何汇总出每组队中获得金牌数最多和最少人员的信息? 答题要求: 1、利用数据透视表完成,包括透视表中的基础操作、sql、计算字段等。 2、不能使用辅助列、VBA。 3、不能修改数据源。 答题截止时间:2010年11月25日 题目.rar |
2楼 mn860429 |
题目.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.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语句为:
第二种方法:为基础操作法:即以群柳、水星钩鱼版主为代表的方法,大概思路是:将人员字段两放入行字段中,分别筛出每组最大值与最小值,并对其进行组合,具体操作可以参考,群柳版主在6楼和操作,这个方法很好,我也学习一下. 答题情况: 除fooddorwater的结果不对外,其他结果均为正确, |
11楼 霖少 |
用水星版主的方法就可以实现啊 |