Excel 2010 SQL应用088 在排序结果中查找指定记录
目录
源数据表
解决方案
在排序结果中查找指定记录的技巧
源数据表
姓名 | 语文 | 数学 | 英语 |
何艳 | 94 | 62 | 80 |
何冬梅 | 86 | 64 | 93 |
冯晨 | 90 | 64 | 74 |
彭勤 | 77 | 67 | 89 |
叶倩 | 63 | 68 | 83 |
曾德昌 | 90 | 69 | 93 |
曹乾刚 | 70 | 69 | 84 |
雷小露 | 79 | 70 | 79 |
余佳丽 | 93 | 71 | 99 |
赵林 | 78 | 71 | 77 |
邓明昊 | 81 | 72 | 87 |
邱志娟 | 84 | 74 | 87 |
马琴 | 63 | 74 | 76 |
王清秀 | 84 | 75 | 87 |
李晓斌 | 99 | 75 | 96 |
王川洪 | 89 | 76 | 71 |
肖妤翊 | 70 | 82 | 76 |
程飞娥 | 73 | 83 | 94 |
孙双米 | 76 | 83 | 98 |
张玲 | 85 | 83 | 93 |
周榕珍 | 70 | 84 | 76 |
刘芙蓉 | 90 | 84 | 74 |
王亚坤 | 70 | 84 | 71 |
柴俊 | 84 | 84 | 74 |
随婷婷 | 69 | 85 | 79 |
文森 | 76 | 87 | 85 |
李明 | 93 | 87 | 94 |
欧仁寿 | 90 | 90 | 85 |
王清容 | 97 | 91 | 80 |
罗秀丽 | 73 | 91 | 98 |
杨永艳 | 72 | 91 | 86 |
姚鹏 | 90 | 93 | 74 |
卢思彤 | 100 | 94 | 79 |
何刚 | 80 | 96 | 77 |
刘华平 | 84 | 96 | 74 |
马晓冬 | 95 | 99 | 98 |
尹玫 | 84 | 100 | 87 |
李金龙 | 81 | 100 | 99 |
如图所示为某次考试的成绩单,要求从3门成绩总分前10名的同学中找出语文成靖最差的3名同学。
解决方案
SELECT TOP 3 * FROM [sheet1$]
WHERE 姓名 IN(SELECT TOP 10 姓名 FROM [sheet1$] ORDER BY 语文+数学+英语 DESC)
ORDER BY 语文 ASC
在排序结果中查找指定记录的技巧
ORDER BY子句可以对多字段的数据进行排序,但是对于本例,却无法直接通过多字段排序得到想要的结果,如下列语句:
SELECT TOP 3 *
FROM [sheet1$]
ORDER BY 语文+数学+英语 DESC,语文 ASC
原因在于:当对总分进行排序后,SQL查询会以总分排序结果作为基础,再对语文进行排序。只有当总分成绩相同时,SQL查询才会再次对总分成绩相同的记录进行语文字段的排序。
但是其排名仍然按照总分从大到小进行排序,即便添加了语文关键字后,上述语句的最终结果仍然是总分前3名的同学,却无法得到总分前10名中语文成绩最差的3名同学。
因而本例的实现必须通过一个中间结果,先利用TOP谓词和排序语句找出总分前10名的同学名单。接着利用WHERE条件子句的IN运算符对“成绩单”中总分前10名的同学进行语文成绩的排序。
因而,首先利用下列语句找出总分前10名的同学:
SELECT TOP 10 姓名
FROM [sheet1$]
ORDER BY 语文+数学+英语 DESC
然后利用WHERE条件子句的IN运算符将总分前10名的同学筛选出来。
最后,在上述语句的基础上对“语文”字段进行升序排列后,利用TOP谓词取得记录的前3条,即可得到总分前10名中语文成绩最差的3名同学。
Excel 2010 SQL应用088 在排序结果中查找指定记录相关推荐
- Excel 2010 SQL应用086 随机排序
目录 源数据表 解决方案 随机排序技巧 伪随机数概念 源数据表 学号 姓名 1000980 罗大吴 1002128 罗文 1000881 张汶 1001511 吴小丽 1004831 柳生风 1001 ...
- Excel 2010 SQL应用092 聚合函数之不重复之记录数
目录 源数据表 解决方案 DISTINCT+COUNT统计不重复的记录数 源数据表 下单日期 订单号 简码 订单数量 2010/4/27 3143 5-950 5067 2010/5/30 3207 ...
- Excel 2010 VBA 入门 048 批量替换文本中的指定字符(replayce函数和方法)
目录 示例: 实现代码 Replace函数 单元格对象的Replace方法 使用Replace方法实现代码 示例: 如图所示,该表为某公司商品编码.由于商品目录升级,现商品编码中以"GXGY ...
- 算法----- 在排序数组中查找元素的第一个和最后一个位置
题目: 在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.你的算法时间复杂度必须是 O(log ...
- LeetCode-剑指 Offer 53 - I. 在排序数组中查找数字 I
剑指 Offer 53 - I. 在排序数组中查找数字 I 思路一:二分单边 + 线性扫描 先用一次二分查找找到边界,再再边界里面寻找目标值 class Solution {public:int se ...
- python 在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.如果数组中不存在目标值 target,返回 ...
- LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置
前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...
- 6、leetcode34 在排序数组中查找元素的第一个位置和最后一个位置**
leetcode34 在排序数组中查找元素的第一个位置和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 如果数组中不存 ...
- leetcode(34)在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置 class Solution {public int[] searchRange(int[] nums, int target) {int len = nu ...
最新文章
- 在云中进行灾难恢复的五种有效方式
- servlet的的生命周期和使用
- javascript基础整理
- 遗传算法系统辨识matlab程序,8.8 基于遗传算法的机械手参数辨识 系统辨识理论及Matlab仿真课件.ppt...
- kettle优化抽取数据速度_数据异构工具介绍
- 太赞了!开源下载机器学习经典书 PRML所有相关资料:中文译本,官方代码,课程视频,学习笔记...
- js或css文件后面的参数是什么意思?
- [转]在ROS下使用zeroconf配置多机通信
- nginx 413 Request Entity Too Large
- 【GPU加速系列】PyCUDA(一):上手简单操作
- MVVM架构之自动增删改的极简RecycleView的实现
- 更换map的遍历顺序优先级_树的级别顺序遍历或宽度优先遍历
- abb变频器acs880说明书_ABB变频器ACS880-104/ACS880-204/ACS880-304产品参数及功能介绍
- java json serialize_java-是否可以简化@JsonSerialize注释?
- 计算机硬盘序列号有什么意义,硬盘序列号会/为什么会改变
- 群辉安装linux软件下载,群晖系统Synology DSM安装ipkg包管理和套件安装方法
- 全国计算机软件专业二本大学排名,2017全国二本大学专业排名
- R语言绘制bivariate polar plots
- RS485,uart串口加瑞芬68协议
- ncverilog脚本_NcVerilog_工作学习记录.pdf