sqlserver查询平均值的实现

sql server查询平均值的方法很多人都提到过,下面就为您详细介绍sql server查询平均值的实现过程,希望对您能够有所帮助。

专注于为中小企业提供做网站、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业麻章免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

sql server查询平均值及并排序的语句:

查询学生的平均成绩并进行排名,sql用子查询完成,分平均成绩重复时保留名次空缺和不保留名次空缺两种。

 
 
 
  1. select t1.* , px = (select count(1) from   
  2. (  
  3.   select m.S# [学生编号] ,   
  4.          m.Sname [学生姓名] ,  
  5.          isnull(cast(avg(score) as decimal(18,2)),0) [平均成绩]  
  6.   from Student m left join SC n on m.S# = n.S#   
  7.   group by m.S# , m.Sname  
  8. ) t2 where 平均成绩 > t1.平均成绩) + 1 from   
  9. (  
  10.   select m.S# [学生编号] ,   
  11.          m.Sname [学生姓名] ,  
  12.          isnull(cast(avg(score) as decimal(18,2)),0) [平均成绩]  
  13.   from Student m left join SC n on m.S# = n.S#   
  14.   group by m.S# , m.Sname  
  15. ) t1  
  16. order by px  
  17.  
  18. select t1.* , px = (select count(distinct 平均成绩) from   
  19. (  
  20.   select m.S# [学生编号] ,   
  21.          m.Sname [学生姓名] ,  
  22.          isnull(cast(avg(score) as decimal(18,2)),0) [平均成绩]  
  23.   from Student m left join SC n on m.S# = n.S#   
  24.   group by m.S# , m.Sname  
  25. ) t2 where 平均成绩 >= t1.平均成绩) from   
  26. (  
  27.   select m.S# [学生编号] ,   
  28.          m.Sname [学生姓名] ,  
  29.          isnull(cast(avg(score) as decimal(18,2)),0) [平均成绩]  
  30.   from Student m left join SC n on m.S# = n.S#   
  31.   group by m.S# , m.Sname  
  32. ) t1  
  33. order by px  
  34.  
  35. /*  

数据表结构

--1.学生表
Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别
--2.课程表
Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号
--3.教师表
Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名
--4.成绩表
SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数

【编辑推荐】

SQL Server FROM子句的语法

SQL Server查询累计值的实现

SQL Server字符串函数大全

SQL Server绑定连接

SQL Server连接数的查询

新闻名称:sqlserver查询平均值的实现
网站网址:http://www.gawzjz.com/qtweb/news3/205853.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联