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

sql over的作用及用法


RANK ( ) OVER ( [query_partition_clause] order_by_clause )
DENSE_RANK ( ) OVER ( [query_partition_clause] order_by_clause )
可实现按指定的字段分组排序,对于相同分组字段的结果集进行排序,
其中PARTITION BY 为分组字段,ORDER BY 指定排序字段
over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用。
其参数:over(partition by columnname1 order by columnname2)
含义:按columname1指定的字段进行分组排序,或者说按字段columnname1的值进行分组排序。
例如:employees表中,有两个部门的记录:department_id =10和20
select department_id,rank() over(partition by department_id order by salary) from employees就是指在部门10中进行薪水的排名,在部门20中进行薪水排名。如果是partition by org_id,则是在整个公司内进行排名。
以下是个人见解:
sql中的over函数和row_numbert()函数配合使用,可生成行号。可对某一列的值进行排序,对于相同值的数据行进行分组排序。如下表:
执行语句:select row_number() over(order by AID DESC) as rowid,* from bb后的结果如下:
rowid标识行号有了,同时AID也按降序排列。AID有重复的记录,如果要删除rowid为2所对应的记录则可以:
with [a] as
(select row_number() over(order by AID desc) as rowid,* from bb)
delete from [a] where rowid=2
如果查看rowid 为5所对应的记录的信息,可以:
with [b] as
(select row_number() over(order by AID desc) as rowid,* from bb)
select * from [b] where rowid=5
注意:
over里的order只能查查询里的原始数据进行操作,不会对计算出的新值或新字段起作用。
msdn中的说法如下:
<ORDER BY 子句> 只能引用通过 from 子句可用的列。<ORDER BY 子句>不能与聚合窗口函数一起使用。


相关文档:

在sql*plus下设置autotrace

    我们在工作中希望能看见自己运行的DML语句的运行报告,例如select,delete,update,megre和insert语句运行后的情况,以用来监视和调优语句。我们通常在sql*plus中使用set autotrace on开启。
    那autotrace是如何安装的呢?thomas kyte的大作中给出了详细的方法和解释:
  & ......

oracle sql面试题2

一.简单SQL查询:
1):统计每个部门员工的数目
select dept,count(*) from employee group by dept;
2):统计每个部门员工的数目大于一个的记录
select dept,count(*) from employee group by dept having count(*)>1;
3):统计工资超过1200的员工所在部门的名称
select e.first_name,salary,d.name
from s_emp ......

sql2005中一个xml聚合的例子

sql2005中一个xml聚合的例子 收藏
该问题来自论坛提问,演示SQL代码如下
--建立测试环境
set nocount on
create table test(ID varchar(20),NAME varchar(20))
insert into test select '1','aaa'
insert into test select '1','bbb'
insert into test select '1','ccc'
insert into test select '2','ddd'
inser ......

sql查询选择表中从10到15的记录

      ORDER BY 子句按一列或多列(最多 8,060 个字节)对查询结果进行排序。有关 ORDER BY 子句最大大小的详细信息,请参阅 ORDER BY 子句 (Transact-SQL)。
      Microsoft SQL Server 2005 允许在 from 子句中指定对 SELECT 列表中未指定的表中的列进行排序。ORDE ......

SQL函数大全

聚合函数
MAX(字段)      
求某字段中的最大值
MIN(字段)
    
求某字段中的最小值
AVG(字段)
     
求某字段中的平均值
SUM(字段)
    
求某字段中的总和
COUNT(字段) 
统计某字段非空纪录数
COUNT
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号