用SQL找出前N名】的更多相关文章

业务系统中常常会有排名的需求,考试和比赛中则更普遍了.Excel 中也有个 Rank 函数供排名之用,数据库中更不例外了. 如果须要找出工资最高的前三个员工工资(及其员工号). 只是."前三名"的详细含义须要准确的定义.不然查出来的可能不是想要的结果. 首先.由于表中记录数可能就少于三,查出来的记录可能等于三条也可能少于三条.其次,须要考虑并列名次的处理. 假设名次不能并列,则还须要考虑是否要依据工资之外的列来区分排名. 比如: 名次 ID 工资 ------------- 1 80…
排序练习--找出前m大的数字 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 给定n个数字,找出前m大的数字.   输入  多组输入,每组输入格式如下. 第一行包含两个整数n m.(n<=100000, m>0) 第二行包含n个正整数. 输出  输出前m大的数字,若m>n输出ERROR.每组输出占一行. 示例输入 2 1 4 3 4 2 1 2 898989 23 示例输出 4 898989 23 基数排序 #incl…
海量数据中找出前k大数(topk问题) 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些. 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个.建堆时间复杂度是O(mlogm),算法的时间复杂度为O(nmlogm)(n为10亿…
本文是受网文 <一次非常有意思的SQL优化经历:从30248.271s到0.001s>启发而产生的. 网文没讲创建表的数据过程,我帮他给出. 创建科目表及数据: CREATE TABLE tb_course ( id NUMBER not null primary key, name NVARCHAR2(10) not null ) Insert into tb_course select rownum,dbms_random.string('*',dbms_random.value(6,10…
1.java方式 String table_sql = "select table_name from user_tables";//所有用户表 List<String> table_list = getSession().createSQLQuery(table_sql).list(); for (int index = 0; index < table_list.size(); index++) { String tab = table_list.get(inde…
循环: loop --执行代码 exit when 表达式;--当表达式为真退出循环.(注意,其编写位置决定循环为先判断还是先执行,相当于java的while或do-while) end loop; 相当于Java的 while(true) { --执行代码 if (表达式) break; } while 表达式 loop --执行代码 end loop; 和Java的while使用方式相同.通过它可实现java中for循环的功能 while n<10 loop --执行代码 n:=n+1; e…
SELECT columnName from dbo.tableName group by columnName having count(*)>1…
--1.不包含字母 SELECT * FROM t WHERE str NOT LIKE '%[a-zA-Z]%' SELECT * FROM t --2.不包含汉字 SELECT * FROM t WHERE str NOT LIKE '%[吖-座]%' SELECT * FROM t…
这个题也是个比较有名的面试题.当然有很多变种. 题目意思基本是:从一个数据量很大的数组里找前N大的元素.不允许排序. 这个题有两个比较好的思路: 思路一:用快速排序的思想,是思想,不是要排序; 思路二:用最大堆的思想. 我暂时只实现了思路一,思路二我之后实现了会补上. 思路一比较简单了.我们先用快排的思想找出第n大的数,然后带上后面n-1个就完事了.因为后面的都比支点数大. 怎么找第n大的数?我在之前的博客写过,请移步到  找第n大的数 代码: #include<stdio.h> #inclu…
/* 1,hash散列 2,找到每个块出现次数最多的(默认出现均匀)—–>可以用字典树 3,在每个块出现最多的数据中挑选出最大的为结果 */ 问题一: 怎么在海量数据中找出重复次数最多的一个 算法思想: 方案1:先做hash,然后求模映射为小文件,求出每个小文件中重复次数最多的一个,并记录重复次数. 然后找出上一步求出的数据中重复次数最多的一个就是所求(如下). 问题二: 网站日志中记录了用户的IP,找出访问次数最多的IP. 算法思想: IP地址最多有2^32=4G种取值可能,所以不能完全加载到…