刚刚看到一篇博客,原帖链接:http://www.cnblogs.com/HCCZX/archive/2012/11/07/2758036.html

通常想到子查询或者临时表外加聚合函数都是没错的,但是真写起来发现SQL语句比较不那么人道,阅读体验不好。追求优雅的Coder通常一看到是SQL Server 2005+,条件反射地想到窗口函数和公用表表达式CTE。一种SQL查询实现如下:

WITH ScoreInfo AS (
SELECT [Student_No], [Student_Name],[Chinese],[Math],[English],[totalScore],DENSE_RANK() OVER(ORDER BY totalScore DESC) AS '名次'FROM [Record] )SELECT CASE 名次  WHEN 1 THEN '第一名' WHEN 2 THEN '第二名' WHEN 3 THEN '第三名'END AS '排名',
[Student_No], [Student_Name],[Chinese],[Math],[English],[totalScore]
FROM ScoreInfo WHERE  名次<4 --取前三名

这样的SQL可读性是不是立刻变得简洁鲜明一目了然?

转载于:https://www.cnblogs.com/jeffwongishandsome/archive/2012/11/07/2759485.html

也做SQL查询:班级总成绩 前三名,总成绩有相等的情况相关推荐

  1. mysql查询各科成绩前三名的记录,sql查询各科成绩前三名----详述过程,思路清晰不烧脑...

    使用mysql.hive查询各科成绩前三名 一.建表造数据 建表: create table scores( name varchar(100), subject varchar(100), scor ...

  2. sql查询各科成绩前三名----详述过程,思路清晰不烧脑!

    一.建表造数据 建表: create table scores( name varchar(100), subject varchar(100), score int ); 插入数据: insert ...

  3. python计算选手最后得分并取出前三名_MySQL中查询获取每个班级成绩前三名的学生信息...

    今天有同事说到了怎么MySQL中查询获取每个班级成绩前三名的学生信息,在网上查了查,然后写出代码,很快就OK了. CREATE TABLE t_testscore(    pk_id INT PRIM ...

  4. mysql查询班级作业提交情况_MySQL中查询获取每个班级成绩前三名的学生信息

    标签: 今天有同事说到了怎么MySQL中查询获取每个班级成绩前三名的学生信息,在网上查了查,然后写出代码,很快就OK了. CREATE TABLE t_testscore(    pk_id INT ...

  5. MySQL 查询学生的总成绩并进行排名_MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况)...

    MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况) MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况) 我的表结构: 先放代码 -- 查询各科成绩前三名的记录(不考虑成绩并列情 ...

  6. mysql实现分组查询每个班级的前三名

    mysql实现分组查询每个班级的前三名set character_set_server = utf8mb4 ; DROP TABLE IF EXISTS student;CREATE TABLE IF ...

  7. mysql筛选班级排名_mysql实现分组查询每个班级的前三名

    1.创建表 drop table student; create table student( id varchar(20),-- 编号 class varchar(20),-- 年级 score i ...

  8. SQL:查询每科目前三名学生及分数

    一.创建得分表 -- 创建student_score表 CREATE TABLE student_score(name varchar(20),subject varchar(20),score in ...

  9. Mysql查询各科成绩前三名并分别排序

    Mysql查询各科成绩前三名并分别排序 这个问题是之前1个朋友学mysql他们老师布置的作业,一开始我没有做过,而且刚出来做开发很多学过的东西都忘记了. 表结构如下: 一开始我是这样写的: selec ...

  10. 查询学生各科前三名的学生成绩

    初始化表student表 CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(32) DEFAULT ...

最新文章

  1. What Influences Method Call Performance in Java?--reference
  2. Spring核心之对 IOC的理解
  3. Linux安装配置Java1.8开发环境
  4. Gartner:PaaS 和平台架构领域的 4 大趋势 | 技术头条
  5. 微服务写的最全的一篇文章
  6. 【LeetCode】Merge Two Sorted Lists(合并两个有序链表)
  7. oracle:数据库对象:创建用户和赋予权限,数据表,序列,事务,约束
  8. 环信 java接口实例_环信即时聊天与java后台接口对接demo
  9. 使用spring的aop监听所有controller或者action日志
  10. CDA I级学习 - EDIT数字化模型
  11. Delphi XE实现FTP上传下载文件
  12. IDEA+EmmyLua Lua开发环境搭建
  13. java使用poi制作的ppt被损坏_poi操作ppt创建表格,结果却是这样?
  14. 前端处理订单支付超时
  15. 前端点击图片将跳出显示框显示图片
  16. c语言strtok用法详细解释
  17. windows下使用vscode编写运行以及调试C/C++
  18. 如何在Java中转换Excel文件到图像?
  19. 2021-2027全球与中国轻型商用车钢轮市场现状及未来发展趋势
  20. android邮箱附件传输,Android上发送带附件的邮件

热门文章

  1. python入门有基础-Python基础知识入门,这三个原则是你要知道的,还有教程
  2. python下载代码-Python3----下载小说代码
  3. python初学者教程我要自学网-我要自学网--json 数据解析-python。
  4. python教程视频在线-微软再推免费在线Python教程 包含20个视频
  5. python安装教程mac-Mac安装python3的方法步骤
  6. python写小程序-用python编写一个闹钟小程序
  7. python 类-Python类(class)
  8. python使用input函数时、必须添加提示文字-Python中使用 input 函数来获取输入
  9. python处理流程-python流程处理
  10. python培训深圳-深圳Python培训机构排名