oracle分析函数(rank(),dense_rank(),row_number())
2012-08-28 14:59
525 查看
sql over的作用及用法
RANK ( ) OVER ( [query_partition_clause] order_by_clause ) --当OVER 后的内容一样是,编号一样,即会重复 或者是 row_number() 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()函数配合使用,可生成行号。可对某一列的值进行排序,对于相同值的数据行进行分组排序. e.g:row_number() over (partition by name, kecheng,score order by rowid) row_number() 顺序号码, 也就是 行号, 比如 1,2,3,4,5 这样的顺序。over 语法需要,必须的。partition by name, kecheng,score 是按照 name, kecheng,score 分区。也就是 如果有 不同的 name, kecheng,score , 这个 序号又重新从1开始计算。order by rowid 是 排序方式, 也就是 最小的 rowid , row_number() 是1,然后随着 rowid 的增加, row_number() 不断递增。 row_number和rownum 有什么区别? rownum Oracle 特有的, 仅仅记录行号, 但是好像不能分组。也就是不能记录几行了,又回到1重新开始。 |
相关文章推荐
- oracle分析函数系列之rank,dense_rank,row_number:实现排名策略 .
- Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number)
- oracle 分析函数Rank, Dense_rank, row_number
- 使用Oracle的分析函数ROW_NUMBER、DENSE_RANK、RANK
- oracle分析函数Rank, Dense_rank, row_number
- oracle分析函数Rank, Dense_rank, row_number
- oracle分析函数Rank, Dense_rank, row_number
- oracle分析函数Rank, Dense_rank, row_number
- Oracle分析函数(1) row_number()、rank()、dense_rank()
- 排名函数(ROW_NUMBER、RANK、DENSE_RANK)及OVER子句 Oracle 中分析函数用法之--rank(),dense_rank(),partition,over()
- oracle分析函数Rank, Dense_rank, row_number
- oracle分析函数Rank, Dense_rank, row_number
- Oracle开发之分析函数(Rank, Dense_rank, row_number)
- Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number)
- Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number)
- Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number)
- oracle分析函数Rank, Dense_rank, row_number
- 使用Oracle的分析函数ROW_NUMBER、DENSE_RANK、RANK
- 如何使用Oracle的分析函数ROW_NUMBER、DENSE_RANK、RANK
- Oracle 排序分析函数之ROW_NUMBER、RANK和DENSE_RANK简析