多列去掉两个最小值求平均
2012-02-05 10:24
141 查看
对于多列此类聚合问题,SQL比较容易.
需要考虑的是:
NULL的处理;
相同值的处理,
其他,没有什么难度.
看一下代码:
最后看一下在EXCEL的效果:
需要考虑的是:
NULL的处理;
相同值的处理,
其他,没有什么难度.
看一下代码:
with t as ( select 班级,科目,成绩,DENSE_RANK() over (partition by 班级,科目 order by 成绩) as rn, row_number() over (partition by 班级,科目 order by 成绩) as rn1 from dbo.分数 unpivot (成绩 for 科目 in (语文,数学,英语,政治,物理,化学,生物,体育,美术,音乐,历史,地理)) p ) select 班级,科目,convert(decimal(11,2),AVG(t1.成绩)) as 平均,(select convert(decimal(11,2),AVG(t2.成绩)) from t as t2 where t2.rn >2 and t2.班级 = t1.班级 and t2.科目 = t1.科目 group by 班级,科目) as 平均2, (select convert(decimal(11,2),AVG(t3.成绩)) from t as t3 where t3.rn1 >2 and t3.班级 = t1.班级 and t3.科目 = t1.科目 group by 班级,科目) as 平均1 from t as t1 group by 班级,科目 order by 班级,科目;
最后看一下在EXCEL的效果:
相关文章推荐
- 去掉两个文件中相同的行保存到一个文件
- 去掉两个集合中相同的内容
- java对List去重并排序、如何快速地去掉两个List中相同的部分
- soj 3134: windy和水星 Stoer-Wagner算法求无向图的最小割集:一个无向连通网络,去掉一个边集可以使其变成两个连通分量则这个边集就是割集;最小割集当然就权和最小的割集
- c# 两个数组比较,将重复部分去掉,返回不重复部分
- 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接返平均
- 两个List去掉重复元素放在一个List中去【两个Listsize值非常大】
- SQL两个表连接查询去掉重复数据的方法
- 如何去掉LinkButton控件的下划线以及两个经典代码
- 图:去掉两个最高分及两个最低分的软件界面设计
- 有1至10w的顺序的数字,从中任意去掉两个之后打乱,然后找到被去掉的这两个数字
- 求两个有序数组归并之后的第k个最小值
- 求两个数组中的数据差绝对值中的最小值
- 将一个带有‘?’的数拆解成两个由4-7组成的数,求该数最小值 回溯法 数学 SRM 665 Div2 Hard LuckySum
- Python实现:斐波那契数列、交换两个变量的值、从一组数据中找出最大最小值
- 排序方法:去掉最高最低分求平均分
- 判断两个数组的元素是否相同,把相同的去掉
- 2-13. 平均两个有序序列(25)(ZJU_PAT 名单 | 排列 )
- 去掉windows两个计算机管理员中的一个
- loadrunner压测分析的两个重要指标:平均响应时间和TPS