oracle中的over()方法

标签: oracle over 方法 | 发表时间:2012-05-27 18:48 | 作者:
出处:http://www.iteye.com

   在涉及到一些复杂逻辑的查询中,简单的SQL不能有效查出想要的结果,需要借助oracle内置函数,比如over(),over方法是不单独使用,需要配合其它的方法来使用。先在简单介绍

1.rank()over()

   现在需要查询某个系的所有班级的成绩前三名名单:

   SQL可以这样来写

 

select name,class,scoure,sno from                                                                       
   (                                                                           
    select name,class,scoure,sno,rank()over(partition by class order by score) mm 
	from chengji
	where depart='计算机'
   )                                                                            
where mm<=3

    加入有特殊的情况,有班里的两个同学的成绩是一样的,比如前两名的成绩是一样的,是怎么处理的。

    rank()over() 会排名 1 1 3 ……,是不连续的。

2.dense_rank()over(order by 列名 排序)

  那么假如我不想这样排序的,希望的排名的结果是, 1 1 2 ……此时,dense_rank()over()就派上用场了。

  dense_rank()over()得到的结果是连续的。

3.sum(column1) over(partition by  column1  order by  column1 )

  该方法的作用是连续求和。假如我们有这样的需求,查看某电子商务网站五月份每天消费情况趋势,即第一个顾客A消费了100,第二个顾客B消费了80,那么对应的趋势为 A 100,B 180 ……

 

 

select cn,uin,buy_time,JEWEL_TOTAL,
	sum(JEWEL_TOTAL).over(partition by to_date(buy_time,'yyyy-mm-dd' order by buy_time) total 
order by buy_time 
where buy_time>=to_date('2012-05-01','yyyy-mm-dd') and 
buy_time<to_date('2012-06-01','yyyy-mm-dd')
 

 

 

 

 

 

 

 

 

 

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [oracle over 方法] 推荐:

oracle中的over()方法

- - ITeye博客
   在涉及到一些复杂逻辑的查询中,简单的SQL不能有效查出想要的结果,需要借助oracle内置函数,比如over(),over方法是不单独使用,需要配合其它的方法来使用.    现在需要查询某个系的所有班级的成绩前三名名单:. where depart='计算机'.     加入有特殊的情况,有班里的两个同学的成绩是一样的,比如前两名的成绩是一样的,是怎么处理的.

Oracle数据库备份方法[转]

- - Oracle - 数据库 - ITeye博客
转载地址: http://www.cnblogs.com/elegantok/archive/2009/03/31/1426290.html. Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统. 比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求.

udp打洞穿透nat实现p2p GitHub - pannzh/P2P-Over-MiddleBoxes-Demo: A simple demo of P2P communication over middle boxes such as NAT

- -
一个P2P聊天程序,使用UDP打洞创建链接. ./p2pchat/server <服务器端口号> ./p2pchat/client <服务器IP>:<服务器端口号> >>> help. 该UDP打洞示例仅支持锥形地址转换器(Cone NAT),如果两个客户端都在同一个公网结点下,需要确保出口路由器支持.

Google 推出 DNS over HTTPS 的 DNS 加密服務

- - Tsung's Blog
Google 要提供 DNS 加密的服務,主要有下述幾種:. Google 推出 DNS over HTTPS 的 DNS 加密服務. 曾經有政府跟 ISP 業者要民眾的網站造訪紀錄,若 DNS 這端都加密起來的話,就連 ISP 也無從查起~ 於是 DNS 加密服務就此產生~. 此篇 Wiki 有整理 DoH 有目前有哪些地方提供支援,哪些程式語言有相關套件可以使用: DoH.

Oracle EBS SQL Trace日志收集的方法

- - CSDN博客推荐文章
Raw Trace的收集方法. 打开Trace,Help > Diagnostics > Trace > Trace > Trace with Binds and Waits. Trace项代表的意思. 3.关闭Trace,Help > Diagnostics > Trace > Trace > No Trace.

Oracle查看表结构的几种方法

- - CSDN博客数据库推荐文章
1,DESCRIBE 命令. SQL> describe nchar_tst(nchar_tst为表名).  名称                                      是否为空.  NAME                                               NCHAR(6).

oracle的一些有用的方法总结

- - 数据库 - ITeye博客
--------------重要-------------------------. --------------重要-------------------------. 3.启动或关闭listener. 解压 tar zxvf back.tar.gz. 压缩 tar cvfz back.tar.gz /back/.

Oracle 移动数据文件的操作方法 - CSDN博客

- -
将表空间和数据文件从一个位置移动到另一个位置的操作方法. OFFLINE 分为ALTER DATABASE 与 ALTER TABLESPACE OFFLINE,. 1.先将相应的数据文件 offline  . 2.把数据文件 copy 到新位置. 4. 介质恢复(offline 数据文件必须要介质恢复).

oracle 索引失效原因及解决方法 - chenxiangxiang - 博客园

- -
oracle 索引失效原因及解决方法. 2010年11月26日 星期五 17:10. 一、以下的方法会引起索引失效. 2,单独的>,<,(有时会用到,有时不会). 3,like "%_" 百分号在前. 5,单独引用复合索引里非第一位置的索引列. 6,字符型字段为数字时在where条件里不添加引号. 7,对索引列进行运算.需要建立函数索引.

oracle中比较两表表结构差异和数据差异的方法

- - CSDN博客推荐文章
      在工作中需要完成这么一个需求:比较两个表的表结构是否形相同,并找出差异.比较两个表中的数据是否相同,并找出差异数据.      分析:由于表结构中字段比较多,手工比较很浪费时间,而且不能保证不出错误.对于表中的数据那就能多了,更不能靠这种方式比较.      为了思考问题简单和方便测试,首先先建立两个测试表,并插入一些测试数据吧,sql如下:.