mysql中如何使用row_number(),例如查询每个班成绩前三名?

最近刚开始学习mysql,以前会些oracle,我记得oracle可以用,为什么mysql不能用。如果用mysql怎么查询班级成绩前三名?

3个回答

按成绩倒叙排 取前三条

Mr_lyh
Mr_lyh 每个班呢。
接近 2 年之前 回复

select * from your_table_name orderby grade desc limit 3;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mysql查询各科成绩的前三名
在一次面试中被问到手写出一条mysql查询各科成绩的前三名, 首先创建表: DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) DEFAULT NULL, `subject_id` bigint(20) D...
查找每个班级中成绩最高的前三名
Student 字段 name ,classid,score class 字段 classid,name   select a.name,b.name as class,score from student a,class b where (select count(1) from student c where a.classid=c.classid and c.score>a.sc
查询每年成绩前三名的学生
创建表: CREATE TABLE `test` ( `id` int(11) NOT NULL, `year` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `score` int(255) DEFAULT NULL, `name` varchar(255) COLLATE utf8mb4_unicode_ci DEF...
求sql 每个班中成绩最好的
表A rnid c_name c_chengji c_banjirn1 张三 55 班级一rn2 李一 94 班级一rn3 张四 31 班级二rn4 张二 55 班级三rn5 张三 75 班级三rn求结果为rn班级一 成绩最高的是李一 94分rn班级二 成绩最高的是张四 31分rn班级三 成绩最高的是张三 75分
用分析函数row_number(),rank(),dense_rank()求每个部门的工资前三名
select *  from( select deptno,ename,sal, row_number() over(partition by deptno order by sal desc) rn, rank() over(partition by deptno order by sal desc) rk,   dense_rank() over(partition by deptn
MySQl查询前三名(包括并列)
有时候会遇到这样的需求,那就是需要查询出前n名的信息。如果是不考虑并列的情况,那就简单了直接使用limit便可搞定。但是当考虑并列的情况是就不一样了。那么这个时候该怎么办呢? 不废话了,直接讲思路。我们可以把查询分为两部分。**一部分用于查询去除重复条件下的前n名成绩。第二部分用户取出在这个区间的所有成员信息。** 来一个实战: 首先是成绩信息表,表名为te: 下面就是sql语句: select a
mysql查询 每个店铺里销量排前三名的商品
每个店铺里销量排前三名的商品,mysql没有top函数,子句还不能用limit,这个用sql可以实现吗?谢谢
查询每个部门工资前三名的员工信息
问:Oracle的EMP表,查询每个部门工资前三名的员工信息,如何写??  解答:(通用sql) [java] view plain copy select deptno, ename, sal       from emp e1      where          (       select count(1)         
“查询各科成绩前三名的记录 ”怎么实现
表结构:rnsno----学生号rncno----课程号rnscore----得分rnrnrn在MySql数据库下。rnrnSELECT a.cno,a.score FROM sc a WHERE (SELECT COUNT(cno) FROM sc WHERE cno=a.cno AND a.score
mysql中如何实现row_number
创建一个学生表,插入10条数据CREATE TABLE student (id int, name varchar(20), score integer); INSERT INTO student VALUES (1, 'jack', 90); INSERT INTO student VALUES (2, 'tom', 85); INSERT INTO student VALUES (3, ...
类似查询一个班的成绩,取出前三名
用成绩表来举例 假设有这样一张成绩表,分数有重复,按分数取出前三名并排序 select s1.name 姓名,s1.score 分数,(select count(distinct s2.score) from `students` s2 where s2.score>s1.score)+1 as 排名 from `students` s1 where s1.score >=...
Mysql实现分组查询每个班级的前三名
1.先创建表 CREATE TABLE IF NOT EXISTS student( id varchar(20),-- 编号 class varchar(20),-- 年级 score int-- 分数 ); 2.插入相关数据 3.查询 select a.class,a.score from student a where (select count(*) fro...
mysql巧用连表查询各科成绩前三名
下列是各表的详情,不想自己建表的同学可以直接copy code,数据随意。 创建表成绩详情表: CREATE TABLE score ( id int(10) NOT NULL AUTO_INCREMENT, subject_id int(10) DEFAULT NULL, student_id int(10) DEFAULT NULL, score float DEF
取每个班里的前三名?
现有该表rn班级 姓名 语文 rnA zhy1 80rnA zhy2 81 rnB zhy3 80 rnB zhy4 82 rnC zhy5 100rnC zhy6 86rn这样的表查询该如何做?请各位赐教!rn
查询各科成绩前三名的记录:(不考虑成绩并列情况)
create table sc(rnsno varchar2(10),rncno varchar2(10),rnscore number(4,2),rnconstraint pk_sc primary key (sno,cno)rn)rnrninsert into sc values ('s001','c001',78.9);rninsert into sc values ('s002','c001',80.9);rninsert into sc values ('s003','c001',81.9);rninsert into sc values ('s004','c001',60.9);rninsert into sc values ('s001','c002',82.9);rninsert into sc values ('s002','c002',72.9);rninsert into sc values ('s003','c002',81.9);rninsert into sc values ('s001','c003','59');rnrn代码:rnSELECT t1.sno,t1.cno,ScorernFROM SC t1rnWHERE score IN (SELECT TOP 3 scorernFROM SCrnWHERE t1.cno= cno)rnORDER BY t1.cno,score descrn我很疑惑WHERE t1.cno= cno这个是什么意思,大神们能不能详细讲解整个代码,最好说一下写这些的思路是怎样的?本人菜鸟。
语文,数学,外语 三门成绩中的前三名查询
怎么写?
如何从表中查询出每个部门每个条码在某个时间段销售额和数量的前三名
表1结构如下:rn部门 条码 品名 销售额 销售数量 销售日期rnrn表2结构如下rn课别 部门rnrn要求:先按部门排序,再按销售额、销售数量排序检索出某个课别每个部门一个时期内的商品销售额的前三名,如查询01课别2007年4月15日到2007年4月22日每个部门一个周内的商品销售额合计的前三名rnrn请高手指点,谢谢
使用ROW_NUMBER() OVER查询很慢
查询语句如下所示:rnSELECT * FROM(SELECT ROW_NUMBER() OVER(order by dtTime desc) AS rownum,rndtTime ... FROM TbTable)rnAS T rnwhere (rownum BETWEEN 10000 AND 10014)rnrn使用到ROW_NUMBER() OVER查询,因为要实现分页,rn数据库有十几万数据,查询很慢,查询时间要7,8秒,有什么办法解决????
sql 求总分成绩前三名
Studentrnrnname course markrnrn张三 math 90rn李四 english 70rn rn ………………rn王五 computer 70rnrnrn求总分前三的学生姓名(包括并列分数)
【MYSQL学习】面试题:查询每个班的第二名(考虑并列)的信息
查询每个班的第二名(考虑并列) 数据源 create table s1 ( id int, name varchar(10), score int, classno int) insert into s1 values (1,xxj,100,1), (2,xxj2,100,1), (3,xxj3,99,1,), (4,xxj4,99,1), (5,xf,99,2), (6,xf2,98,2)...
查询每个班成绩排名前三的学生信息
一、问题 二、解决方案 准备数据 查询select * from t_student t where (select count(1)+1 from t_student where class_id=t.class_id and score>t.score) <= 3 详解 总结 利用子查询记录结果,判断是否满足条件
MYSQL 统计每个班有多少个学生
[code=sql]create temporary table classnamern select 1 as cid, '小一班' as cid_namern union all select 2, '小二班'rn union all select 3, '小三班'rn union all select 4, '中一班'rn union all select 5, '中二班'rn union all select 6, '中三班'rn union all select 7, '大一班'rn union all select 8, '大二班';[/code]rn[code=sql]rncreate temporary table temp2rn select 1 as sid, '张一' as sid_name, 2 as cidrn union all select 2, '张二', 1rn union all select 3, '张三', 1rn union all select 4, '张四', 3rn union all select 5, '张五', 2rn union all select 6, '张六', 5rn union all select 7, '张七', 6rn union all select 8, '张八', 6;rn[/code]rnrnMYSQL 统计每个班有多少个学生rn
SQL(收藏)查询每个部门工资前三名的员工信息
问:Oracle的EMP表,查询每个部门工资前三名的员工信息,如何写?? 解答:(通用sql) [code=&quot;sql&quot;] select deptno, ename, sal from emp e1 where ( select count(1) from emp e2 where e2.deptno=e1.dept...
mysql如何限制每个连接的查询数量
公司要共享mysql给客户,领导说要限制每个连接一次查询的数量,尽可能保证用户多了以后,每个用户查询的消耗都是差不多,怎么设置啊
在mysql中查询每个分组的前几名
注意:!!!排序后分组出来的结果中非分组字段是随机的记录中的数据,并不是按排序中的结果的第一条显示的 综合推荐的两种方式(已经测试了结果是可行的方案): 1.分组取前n条记录 SELECT b.id, b.wx_user_id, b.create_date, b.type FROM t_weixin_user_browse b ...
Array.sort() 升序降序 -- 成绩前三名 TOP3
public class Top3 { public static void main(String[] args) { int[] scores = { 89, 23, 64, 91, 119, 52, 73 }; Top3 top3 = new Top3(); top3.tops(scores); } // 定义方法完成成绩排序并输出前三名的功能 public voi...
mysql没有row_number()方法
mysql没有row_number()方法,但主键ID又不是连号,但又需要连号才能处理,怎么解决
十几万数据使用ROW_NUMBER() OVER查询很慢
查询语句如下所示:rnSELECT * FROM(SELECT ROW_NUMBER() OVER(order by dtTime desc) AS rownum,rndtTime ... FROM TbTable)rnAS T rnwhere (rownum BETWEEN 10000 AND 10014)rnrn使用到ROW_NUMBER() OVER查询,因为要实现分页,rn数据库有十几万数据,查询很慢,查询时间要7,8秒,有什么办法解决????rnrn
MySQL没有row_number()问题解决方案
今天客户提了一个需求,要求序列号按照1往下递增,而现有的展现方式是直接从数据库中取出来的自增id,未做任何处理; 一下是更改后的显示方式,仅供参考: set @row = 0; SELECT @row:=case when @row is null then 1 else @row+1 end as RNr, id, `name` FROM type1 where org_id=2
使用 ROW_NUMBER 为什么这样查询这么慢的
WITH temp AS rn( rn SELECT ROW_NUMBER() OVER(ORDER BY BD.FitemId DESC) AS RowNo,POS.*,BD.dalei,BD.zhonglei,BD.xiaolei,BD.xilie ,BD.F2C005 AS Whether,BD.f2c006 AS MOQ,BD.F2C007 AS ReadTime,BD.F2C002 AS OEM,BD.F2C003 AS InternalBuy,BD.fenPdate AS StorageDatarn ,ERP_TB.*,ERP_WL.*rn ,(cast(cast((((POS.SPRICE)/(ERP_TB.fsaleprice))*100)as rn decimal(18,0))as varchar)+'%')zklv,(CAST(CAST((((POS.SPRICE-(ERP_TB.forderprice*1.17))/POS.SPRICE)*100)AS DECIMAL(18,1))AS VARCHAR)+'%')gplvrn FROM F2C_MANAGE AS BD --F2C_MANAGE本地基础数据rn LEFT JOINrn (SELECT MS.FITEMID,MS.FName , cast(MS.forderprice asrn decimal(18,2))FOrderprice, cast(MS.fsaleprice asrn decimal(18,2))FSaleprice,MS.f_108 AS BarCode, KS.FQty AS KSF2C,TM.FQty AS TMF2C,F2C.FQty AS F2C,MD.FQty AS MDF2C,TI.FNAME AS Country FROM [ERP].[AIS20150111112601].[dbo].T_ICITEM MSrn LEFT JOIN rn (SELECT FITEMID,FQty FROM [ERP].[AIS20150111112601].[dbo].ICInventory --ICInventory根据门店号获取ITEMIDrn WHERE FStockId=112411)KS ON KS.FITEMID=MS.FITEMID rn LEFT JOIN rn (SELECT FITEMID,FQty FROM [ERP].[AIS20150111112601].[dbo].ICInventory --ICInventory根据门店号获取ITEMIDrn WHERE FStockId=90823)TM ON TM.FITEMID=MS.FITEMIDrn LEFT JOIN rn (SELECT FITEMID,FQty FROM [ERP].[AIS20150111112601].[dbo].ICInventory --ICInventory根据门店号获取ITEMIDrn WHERE FStockId=109876)F2C ON F2C.FITEMID=MS.FITEMIDrn LEFT JOIN rn (SELECT FITEMID,FQty FROM [ERP].[AIS20150111112601].[dbo].ICInventory --ICInventory根据门店号获取ITEMIDrn WHERE FStockId=rn (select FItemId from [ERP].AIS20150111112601.dbo.t_Stock rn rn where Fname='特卖仓'))MD ON MD.FITEMID=MS.FITEMID--变量rn Left join rn (SELECT FNAME,FITEMID FROM [ERP].AIS20150111112601.dbo.t_Item) TI on MS.F_114 = TI.FITEMID rn WHERE MS.fsaleprice!=0rn ) as ERP_TB on BD.FITEMID = ERP_TB.FItemIDrn LEFT JOIN(rn -- 查询POS数据rn SELECT SOURCE,SPRICE,PPRICE FROM openquery(POS,'rn select t1.*,t2.SALE_QTY from (SELECTrn TG.CHAIN_NO,MG.MS_NO,MG.GOODS_CD,MG.GOODS_NM,MS.SOURCE,TG.ERP_CD1 AS ERP_CDrn ,F_GET_MPRICE(TO_CHAR(SYSDATE,''YYYYMMDD''),''0'',MG.MS_NO,MG.GOODS_CD) AS SPRICErn ,F_GET_TPRICE(TO_CHAR(SYSDATE,''YYYYMMDD''),''0'',''C001'',MG.GOODS_CD) AS PPRICErn FROM MGOODSTB MG,TGOODSTB TG,MMSSRCTB MS,MMEMBSTB MPrn WHERE MG.MS_NO = ''GC0140''rn AND MG.MS_NO = MS.MS_NOrn AND MG.GOODS_CD = MS.GOODS_CDrn AND TG.CHAIN_NO = ''C001''rn AND MG.GOODS_CD = TG.GOODS_CDrn AND MG.MS_NO = MP.MS_NOrn --过滤保留F2C商品rn AND F_GET_MPRICE(TO_CHAR(SYSDATE,''YYYYMMDD''),''0'',MG.MS_NO,MG.GOODS_CD)rn <> F_GET_TPRICE(TO_CHAR(SYSDATE,''YYYYMMDD''),''0'',''C001'',MG.GOODS_CD)rn --rn ) t1rn left join (rn SELECT GOODS_CD,SUM(SG.SALE_QTY) SALE_QTYrn FROM SGOODSTB SGrn WHERE MS_NO=''GC0140''rn and SG.SALE_DATE>=20151028rn GROUP BY GOODS_CDrn ) t2rn on t1.goods_cd=t2.goods_cd where SPRICE!=0')rn ) as POS ON POS.SOURCE = ERP_TB.BarCodern LEFT JOIN (rn SELECT ERP.EMPAREA,Uuid,FName AS Model,FModel,FName AS Picture,described,wlName,spColour,guige,yongtu,tedian1,wlGw,daxiao rn FROM [LOCK2ERPWLWW].[dbo].[M_WLXZMM] MWM,rn [LOCK2ERPWLWW].[dbo].[M_WLXZ] MW,[LOCK2ERPWLWW].[dbo].[CM_EMP] ERPrn where MW.PUuid=MWM.PUuid AND (gcNumber='' OR gcNumber IS NULL) rn and ERP.EMPID=MW.ApplyUserrn ) AS ERP_WL ON ERP_WL.Model=ERP_TB.FName and ERP_WL.EMPAREA =BD.WLAREA) rnSELECT * rnFROM temprnWHERE RowNo>3500 and rowno <4300rnrnrnrnrn如果RowNo只一个 会很快 加其他条件没有问题 但是加上and 或者between 超慢 求教
Mysql 里面使用row_number() 的用法和注意
虽然使用不多,但是也有情况是需要在mysql 里面写语句开发功能的。在sql server 使用惯了,习惯了使用row_number() 函数进行排序,但是mysql 确没有这样一个函数。然后找到了po主写的一篇 文章。通过变量赋值来查询的。(PS 我测试的版本是mysql 5.6) 参考链接:http://www.cnblogs.com/advocate/archive/2012/03/02/...
进行成绩排序并输出前三名
import java.util.Arrays; public class HelloWorld {         //完成 main 方法     public static void main(String[] args) {         HelloWorld hello=new HelloWorld();         int[] scores={89,-23,64,91,119,5...
程序员成绩如何查询?
哎呀,考晚了不知道过没过,那位可以告诉我一般多少分能通过》
如何查询第二名成绩
有一个表rn fs(courseid,nameid,mark)rn courseid 是课程号,nameid是学号,mark是分数rn要把总分第二的学生的nameid和marks(总分)列出来rn rn总分第二的可能有多名学生rnrnrn如果还有一个表rn studen(nameid,name)rnrn要把总分第二的学生的name和marks(总分)列出来
12. 有一批成绩,完成函数,实现输出成绩的前三名。
有一批成绩,完成函数,实现输出成绩的前三名。 #include <stdio.h> void search(int tt[],int max[]) { int i,j,t,maxx; for(i=2;i>=0;i--) { for(j=0;j<30;j++) { if(maxx<tt[j]) {
求班的平均成绩、最高成绩、最低成绩
import java.util.Scanner; public class AvgMaxMin { public static float Avg(int a[]) { int sum = 0, n = a.length; for(int i = 0; i &amp;lt; a.length; i++) { sum += a[i]; } return (su...
mysql中怎么解决关于ROW_NUMBER()的问题
如题:rn[code=SQL]rnSELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY emp.c_uid ASC) AS RowID, emp.c_uid, emp.c_name_c, emp.c_name_e, emp.c_user_type,emp.i_status,emp.d_create FROM tbl_user emp) as list WHERE RowID between (1-1) * 10 + 1 and 1*10 select count(*) from (SELECT ROW_NUMBER() OVER (ORDER BY emp.c_uid ASC) AS RowID, emp.c_uid, emp.c_name_c, emp.c_name_e, emp.c_user_type,emp.i_status,emp.d_create FROM tbl_user emp) as tmprn[/code]rn我有段这这样的SQL代码,但是在MYSQL中不支持 ROW_NUMBER(),请问在MYSQL中有什么方法可以替代????
Meteor 中使用mysql(查询)
meteor中mysql的查询
用一条sql查询各科成绩前三名的s#,c#,score:(不用考虑成绩并列情况)
SC(S#,C#,score) 成绩表 rnrn用一条sql查询各科成绩前三名的s#,c#,score:(不用考虑成绩并列情况)
sql查询分组数据的前几名,mysql分组查询前三名
1. 脚本 DROP TABLE IF EXISTS `emp`; CREATE TABLE `emp` ( `empno` decimal(4, 0) NOT NULL, `ename` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `job` varchar(9) CHARACT...
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法