易截截图软件、单文件、免安装、纯绿色、仅160KB

[Oracle]高效的SQL语句之分析函数(三)

本系列文章导航
[Oracle]高效的SQL语句之分析函数(一)--sum()
[Oracle]高效的SQL语句之分析函数(二)--max()
[Oracle]高效的SQL语句之分析函数(三)--row_number() /rank()/dense_rank()
[Oracle]高效的SQL语句之分析函数(四)--lag()/lead()
有些时候我们希望得到指定数据中的前n列,示例如下:
得到每个部门薪水最高的三个雇员:
先创建示例表
create table emp
as
select * from scott.emp;
alter table emp
add constraint emp_pk
primary key(empno);
create table dept
as
select * from scott.dept;
alter table dept
add constraint dept_pk
primary key(deptno);
先看一下row_number() /rank()/dense_rank()三个函数之间的区别
 select emp.deptno,emp.sal,emp.empno,row_number() over (partition by deptno order by sal desc) row_number,  --1,2,3
  rank() over (partition by deptno order by sal desc) rank, --1,1,3
  dense_rank() over (partition by deptno order by sal desc) dense_rank from emp --1,1,2
结果如下:
10    5000.00    7839    1    1    1
10    2450.00    7782    2    2    2
10    1300.00    7934    3    3    3
20    3000.00    7788    1    1    1
20    3000.00    7902    2    1    1
20    2975.00    7566    3    3 &n


相关文档:

如何用SQL语句在两个数据库间复制存储过程

 --1.在目标服务器上建立如下对象(被同步的服务器)  
   
  if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[sys_syscomments_bak]')   and   OBJECTPROPERTY(id,   N'IsUserTable')   ......

如何用命令生成SQL SERVER脚本

如何用命令生成SQL   SERVER脚本  
   
  --以下生成整个数据库的SQL脚本,我测试了,相当好用。  
  --(scptxfr.exe的路径要正确以下是我的路径)  
  declare   @cMd   varchar(1000)  
  set   @cmd   =   'master.dbo.xp_cm ......

SQL TRIM()函数使用方法

SQL 中的 TRIM 函数
是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:
MySQL: TRIM(), RTRIM(), LTRIM()
Oracle: RTRIM(), LTRIM()
SQL Server: RTRIM(), LTRIM()
各种 trim 函数的语法如下:
TRIM ([[位置] [要移除的字串] from ] 字串): [位置 ......

[Oracle]高效的SQL语句之分析函数(一)

本系列文章导航
[Oracle]高效的SQL语句之分析函数(一)--sum()
[Oracle]高效的SQL语句之分析函数(二)--max()
[Oracle]高效的SQL语句之分析函数(三)--row_number() /rank()/dense_rank()
[Oracle]高效的SQL语句之分析函数(四)--lag()/lead()
实际应用中我们可以通过sum()统计出组中的总计或者是累加值,具体示例如下:
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号