也做SQL查询:班级总成绩 前三名,总成绩有相等的情况
刚刚看到一篇博客,原帖链接: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查询:班级总成绩 前三名,总成绩有相等的情况相关推荐
- mysql查询各科成绩前三名的记录,sql查询各科成绩前三名----详述过程,思路清晰不烧脑...
使用mysql.hive查询各科成绩前三名 一.建表造数据 建表: create table scores( name varchar(100), subject varchar(100), scor ...
- sql查询各科成绩前三名----详述过程,思路清晰不烧脑!
一.建表造数据 建表: create table scores( name varchar(100), subject varchar(100), score int ); 插入数据: insert ...
- python计算选手最后得分并取出前三名_MySQL中查询获取每个班级成绩前三名的学生信息...
今天有同事说到了怎么MySQL中查询获取每个班级成绩前三名的学生信息,在网上查了查,然后写出代码,很快就OK了. CREATE TABLE t_testscore( pk_id INT PRIM ...
- mysql查询班级作业提交情况_MySQL中查询获取每个班级成绩前三名的学生信息
标签: 今天有同事说到了怎么MySQL中查询获取每个班级成绩前三名的学生信息,在网上查了查,然后写出代码,很快就OK了. CREATE TABLE t_testscore( pk_id INT ...
- MySQL 查询学生的总成绩并进行排名_MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况)...
MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况) MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况) 我的表结构: 先放代码 -- 查询各科成绩前三名的记录(不考虑成绩并列情 ...
- mysql实现分组查询每个班级的前三名
mysql实现分组查询每个班级的前三名set character_set_server = utf8mb4 ; DROP TABLE IF EXISTS student;CREATE TABLE IF ...
- mysql筛选班级排名_mysql实现分组查询每个班级的前三名
1.创建表 drop table student; create table student( id varchar(20),-- 编号 class varchar(20),-- 年级 score i ...
- SQL:查询每科目前三名学生及分数
一.创建得分表 -- 创建student_score表 CREATE TABLE student_score(name varchar(20),subject varchar(20),score in ...
- Mysql查询各科成绩前三名并分别排序
Mysql查询各科成绩前三名并分别排序 这个问题是之前1个朋友学mysql他们老师布置的作业,一开始我没有做过,而且刚出来做开发很多学过的东西都忘记了. 表结构如下: 一开始我是这样写的: selec ...
- 查询学生各科前三名的学生成绩
初始化表student表 CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(32) DEFAULT ...
最新文章
- What Influences Method Call Performance in Java?--reference
- Spring核心之对 IOC的理解
- Linux安装配置Java1.8开发环境
- Gartner:PaaS 和平台架构领域的 4 大趋势 | 技术头条
- 微服务写的最全的一篇文章
- 【LeetCode】Merge Two Sorted Lists(合并两个有序链表)
- oracle:数据库对象:创建用户和赋予权限,数据表,序列,事务,约束
- 环信 java接口实例_环信即时聊天与java后台接口对接demo
- 使用spring的aop监听所有controller或者action日志
- CDA I级学习 - EDIT数字化模型
- Delphi XE实现FTP上传下载文件
- IDEA+EmmyLua Lua开发环境搭建
- java使用poi制作的ppt被损坏_poi操作ppt创建表格,结果却是这样?
- 前端处理订单支付超时
- 前端点击图片将跳出显示框显示图片
- c语言strtok用法详细解释
- windows下使用vscode编写运行以及调试C/C++
- 如何在Java中转换Excel文件到图像?
- 2021-2027全球与中国轻型商用车钢轮市场现状及未来发展趋势
- android邮箱附件传输,Android上发送带附件的邮件
热门文章
- python入门有基础-Python基础知识入门,这三个原则是你要知道的,还有教程
- python下载代码-Python3----下载小说代码
- python初学者教程我要自学网-我要自学网--json 数据解析-python。
- python教程视频在线-微软再推免费在线Python教程 包含20个视频
- python安装教程mac-Mac安装python3的方法步骤
- python写小程序-用python编写一个闹钟小程序
- python 类-Python类(class)
- python使用input函数时、必须添加提示文字-Python中使用 input 函数来获取输入
- python处理流程-python流程处理
- python培训深圳-深圳Python培训机构排名