`
gaoyuntao2005
  • 浏览: 302979 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个项目涉及到的50个Sql语句(整理版)2

阅读更多
--18、查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率 --及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90 --方法1 select m.C# [课程编号], m.Cname [课程名称], max(n.score) [最高分], min(n.score) [最低分], cast(avg(n.score) as decimal(18,2)) [平均分], cast((select count(1) from SC where C# = m.C# and score >= 60)*100.0 / (select count(1) from SC where C# = m.C#) as decimal(18,2)) [及格率(%)], cast((select count(1) from SC where C# = m.C# and score >= 70 and score < 80 )*100.0 / (select count(1) from SC where C# = m.C#) as decimal(18,2)) [中等率(%)], cast((select count(1) from SC where C# = m.C# and score >= 80 and score < 90 )*100.0 / (select count(1) from SC where C# = m.C#) as decimal(18,2)) [优良率(%)], cast((select count(1) from SC where C# = m.C# and score >= 90)*100.0 / (select count(1) from SC where C# = m.C#) as decimal(18,2)) [优秀率(%)] from Course m , SC n where m.C# = n.C# group by m.C# , m.Cname order by m.C# --方法2 select m.C# [课程编号], m.Cname [课程名称], (select max(score) from SC where C# = m.C#) [最高分], (select min(score) from SC where C# = m.C#) [最低分], (select cast(avg(score) as decimal(18,2)) from SC where C# = m.C#) [平均分], cast((select count(1) from SC where C# = m.C# and score >= 60)*100.0 / (select count(1) from SC where C# = m.C#) as decimal(18,2)) [及格率(%)], cast((select count(1) from SC where C# = m.C# and score >= 70 and score < 80 )*100.0 / (select count(1) from SC where C# = m.C#) as decimal(18,2)) [中等率(%)], cast((select count(1) from SC where C# = m.C# and score >= 80 and score < 90 )*100.0 / (select count(1) from SC where C# = m.C#) as decimal(18,2)) [优良率(%)], cast((select count(1) from SC where C# = m.C# and score >= 90)*100.0 / (select count(1) from SC where C# = m.C#) as decimal(18,2)) [优秀率(%)] from Course m order by m.C# --19、按各科成绩进行排序,并显示排名 --19.1 sql 2000用子查询完成 --Score重复时保留名次空缺 select t.* , px = (select count(1) from SC where C# = t.C# and score > t.score) + 1 from sc t order by t.c# , px --Score重复时合并名次 select t.* , px = (select count(distinct score) from SC where C# = t.C# and score >= t.score) from sc t order by t.c# , px --19.2 sql 2005用rank,DENSE_RANK完成 --Score重复时保留名次空缺(rank完成) select t.* , px = rank() over(partition by c# order by score desc) from sc t order by t.C# , px --Score重复时合并名次(DENSE_RANK完成) select t.* , px = DENSE_RANK() over(partition by c# order by score desc) from sc t order by t.C# , px --20、查询学生的总成绩并进行排名 --20.1 查询学生的总成绩 select m.S# [学生编号] , m.Sname [学生姓名] , isnull(sum(score),0) [总成绩] from Student m left join SC n on m.S# = n.S# group by m.S# , m.Sname order by [总成绩] desc --20.2 查询学生的总成绩并进行排名,sql 2000用子查询完成,分总分重复时保留名次空缺和不保留名次空缺两种。 select t1.* , px = (select count(1) from ( select m.S# [学生编号] , m.Sname [学生姓名] , isnull(sum(score),0) [总成绩] from Student m left join SC n on m.S# = n.S# group by m.S# , m.Sname ) t2 where 总成绩 > t1.总成绩) + 1 from ( select m.S# [学生编号] , m.Sname [学生姓名] , isnull(sum(score),0) [总成绩] from Student m left join SC n on m.S# = n.S# group by m.S# , m.Sname ) t1 order by px select t1.* , px = (select count(distinct 总成绩) from ( select m.S# [学生编号] , m.Sname [学生姓名] , isnull(sum(score),0) [总成绩] from Student m left join SC n on m.S# = n.S# group by m.S# , m.Sname ) t2 where 总成绩 >= t1.总成绩) from ( select m.S# [学生编号] , m.Sname [学生姓名] , isnull(sum(score),0) [总成绩] from Student m left join SC n on m.S# = n.S# group by m.S# , m.Sname ) t1 order by px --20.3 查询学生的总成绩并进行排名,sql 2005用rank,DENSE_RANK完成,分总分重复时保留名次空缺和不保留名次空缺两种。 select t.* , px = rank() over(order by [总成绩] desc) from ( select m.S# [学生编号] , m.Sname [学生姓名] , isnull(sum(score),0) [总成绩] from Student m left join SC n on m.S# = n.S# group by m.S# , m.Sname ) t order by px select t.* , px = DENSE_RANK() over(order by [总成绩] desc) from ( select m.S# [学生编号] , m.Sname [学生姓名] , isnull(sum(score),0) [总成绩] from Student m left join SC n on m.S# = n.S# group by m.S# , m.Sname ) t order by px --21、查询不同老师所教不同课程平均分从高到低显示 select m.T# , m.Tname , cast(avg(o.score) as decimal(18,2)) avg_score from Teacher m , Course n , SC o where m.T# = n.T# and n.C# = o.C# group by m.T# , m.Tname order by avg_score desc --22、查询所有课程的成绩第2名到第3名的学生信息及该课程成绩 --22.1 sql 2000用子查询完成 --Score重复时保留名次空缺 select * from (select t.* , px = (select count(1) from SC where C# = t.C# and score > t.score) + 1 from sc t) m where px between 2 and 3 order by m.c# , m.px --Score重复时合并名次 select * from (select t.* , px = (select count(distinct score) from SC where C# = t.C# and score >= t.score) from sc t) m where px between 2 and 3 order by m.c# , m.px --22.2 sql 2005用rank,DENSE_RANK完成 --Score重复时保留名次空缺(rank完成) select * from (select t.* , px = rank() over(partition by c# order by score desc) from sc t) m where px between 2 and 3 order by m.C# , m.px --Score重复时合并名次(DENSE_RANK完成) select * from (select t.* , px = DENSE_RANK() over(partition by c# order by score desc) from sc t) m where px between 2 and 3 order by m.C# , m.px --23、统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60]及所占百分比 --23.1 统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60] --横向显示 select Course.C# [课程编号] , Cname as [课程名称] , sum(case when score >= 85 then 1 else 0 end) [85-100], sum(case when score >= 70 and score < 85 then 1 else 0 end) [70-85], sum(case when score >= 60 and score < 70 then 1 else 0 end) [60-70], sum(case when score < 60 then 1 else 0 end) [0-60] from sc , Course where SC.C# = Course.C# group by Course.C# , Course.Cname order by Course.C# --纵向显示1(显示存在的分数段) select m.C# [课程编号] , m.Cname [课程名称] , 分数段 = ( case when n.score >= 85 then '85-100' when n.score >= 70 and n.score < 85 then '70-85' when n.score >= 60 and n.score < 70 then '60-70' else '0-60' end) , count(1) 数量 from Course m , sc n where m.C# = n.C# group by m.C# , m.Cname , ( case when n.score >= 85 then '85-100' when n.score >= 70 and n.score < 85 then '70-85' when<s
分享到:
评论

相关推荐

    一个项目涉及到的50个Sql语句(整理版).txt

    一个项目涉及到的50个Sql语句(整理版) 经典的SQL语句txt文件

    一个项目涉及到的50个Sql语句(整理版)

    一个项目涉及到的50个Sql语句(整理版) 一个项目涉及到的50个Sql语句(整理版) 一个项目涉及到的50个Sql语句(整理版) 一个项目涉及到的50个Sql语句(整理版)

    一个项目涉及到的50个Sql语句

    一个项目涉及到的50个Sql语句,整理的大乌龟同学的代码,借花献佛。

    通过分析sql语句的执行计划优化sql

    本文档主要介绍与SQL调整有关的内容,内容涉及多个方面:SQL语句执行的过程、ORACLE优化器,表之间的关联,如何得到SQL执行计划,如何分析执行计划等内容,从而由浅到深的方式了解SQL优化的过程,使大家逐步步入SQL...

    SQL-grammer-collection.zip_sql语句collection

    自己整理的sql语句大全,分基础部分和提升部分,提升部分涉及到很多面试时会被问到的sql语句。

    Oracle中SQL语句行列之间相互转换

    本人在工作中遇到了涉及到数据库行列之间相互转换的问题,在网上搜索了很久也没有一个比较完整的解释,通过本人自己的摸索测试,整理出来了Oracle中SQL语句行列之间相互转换的资料,大家可以下载学习。

    数据库课程实践题目-经典的学生课程成绩三张表

    标题:一个项目涉及到的50个Sql语句(整理版) 作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 时间:2010-05-10 地点:重庆航天职业学院 说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个...

    北科大数据库考试SQL语句复习(含部分关系代数)

    说明:本文档用于数据库考前SQL语句复习,以《数据库系统概念(第六版)》第三章课后题为复习框架,对其中涉及的知识随着复习进度做以整理,包含部分关系代数知识,用于复习北科大数据库考试2-6章SQL及关系代数的40...

    自己整理的sql笔试题

    整理的十几道sql的题目,基本是常用的一些查询语句,包括对sql函数,多表关联查询等都有涉及,方便在笔试前复习巩固

    程序源码 Web页面执行SQL语句_dbmanagesql(ASP.NET源码).rar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

    Toad 使用快速入门

    例如,当我们点一个数据库的表,所有和此表相关的索引、约束、存储过程、SQL语句以及和其他表的相互引用关系都在同一界面显示出来。为了简化操作,用户可以在浏览窗口操作数据库对象。 SQL 编辑器: SQL 编辑器的...

    数据库SQL语句优化总结(收藏)

    网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。 这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的...

    送强力打狗棒,文末领取

    我一直想找一个通用性的过狗方法,预期是这个绕过方法不会涉及到下面3个方面 (1)中间件,如iis、apache (2)数据库,如mysql、sql server (3)脚本语言,如php、aspx、asp 网上关于安全狗的sql绕过研究,大多数...

    mysql笔记.txt

    sql语句改写 select customer_id,title,content from product_comment where audit_status=1 and product_id=199 limit 0,5; 该语句缺点越往后翻页效率越差, 适用于表数据量不大,10000行一下, 或者查询条件...

    asp.net知识库

    也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息...

    Java后端面试手册-Java基础知识

    数据库和SQL:涵盖数据库基础知识、SQL语句的编写和优化、数据库事务等相关内容。 Web开发:包括常用的Web开发框架(如Spring、Spring Boot)、RESTful API设计、HTTP协议等。 分布式系统和微服务:介绍分布式系统...

Global site tag (gtag.js) - Google Analytics