求一条查询语句 求一条查询语句 , EMP有3个字段 EMANE,DEPTNO,SAL求查询每个部门薪水前十名的纪录 用一条SQL语句 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SELECT * FROM (SELECT ENAME, DEPTNO, SAL, RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL) RK FROM EMP) WHERE RK <= 10; SELECT * FROM (SELECT ENAME, DEPTNO, SAL, RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL DESC) RK FROM EMP) WHERE RK <= 10; 另外一种方法:SELECT * FROM EMP E1 WHERE ( SELECT COUNT(1) FROM EMP E2 WHERE E1.DEPTNO = E2.DEPTNO AND E1.SAL < E2.SAL ) < 10; RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL DESC) 麻烦解释一下,谢谢! 1楼正解。RANK 功能描述:1、根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置。组内的数据按ORDER BY子句排序,然后给每一行赋一个号,从而形成一个序列,该序列从1开始,往后累加。每次ORDER BY表达式的值发生变化时,该序列也随之增加。有同样值的行得到同样的数字序号(认为null时相等的)。2、如果两行得到同样的排序,则序数将随后跳跃。如:若两行序数为1,则没有序数2,序列将给组中的下一行分配值3。DENSE_RANK则没有任何跳跃。 中间件,访问后台数据库。 sql如何找出符合某个条件的第一个数据 求教,oracle创建触发器,更新表A时触发而更新B,使B表的记录加上表C的值 请教,通过ODBC,32位的程序如何连接64位的Oracle? 求一个UPDATE语句 求一条SQL文,多记录合并 从sqlserver2000导入oracle9i的问题(斑竹请进!) 那位教我怎样返回这样一个数据集 请教关于select语句,请大家帮帮忙! mybatis中merge into批量使用问题 sql语句插入一列的问题 oralce中的Enterprise Manager Console 中的独立启动和登陆启动有什么区别?
FROM (SELECT ENAME,
DEPTNO,
SAL,
RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL) RK
FROM EMP)
WHERE RK <= 10;
FROM (SELECT ENAME,
DEPTNO,
SAL,
RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL DESC) RK
FROM EMP)
WHERE RK <= 10;
SELECT *
FROM EMP E1
WHERE (
SELECT COUNT(1)
FROM EMP E2
WHERE E1.DEPTNO = E2.DEPTNO
AND E1.SAL < E2.SAL
) < 10;
功能描述:
1、根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置。组内的数据按ORDER BY子句排序,然后给每一行赋一个号,从而形成一个序列,该序列从1开始,往后累加。每次ORDER BY表达式的值发生变化时,该序列也随之增加。有同样值的行得到同样的数字序号(认为null时相等的)。
2、如果两行得到同样的排序,则序数将随后跳跃。如:若两行序数为1,则没有序数2,序列将给组中的下一行分配值3。DENSE_RANK则没有任何跳跃。