这个查询怎么写呢?

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

假设我这里有一个表,里面存放的是每天的客户交易额,例如  
  recorddate       customerid         value  
  2004/12/31               000001         100000  
  2004/12/31               000002         300000  
  2004/12/31               000003         400000  
  2004/12/31               000004         500000  
  .  
  .  
  2004/01/01               000006         122335  
  2004/01/01               000002         300000  
  2004/01/01               000003         400000  
  2004/01/01               000004         500000  
  .  
  .  
  .  
  现在我想查出每天交易额排前10位的信息.也就是查询出每天10条最大交易客户id,该怎么解决呢?谢谢

· 网友精彩回答:

发表者:xhyph

select   value,customerid   from   table_name   where   rownum   <=10   and   recorddate   =   to_date(某一天   )order   by   value  
 

发表者:bluecocoqd

select   *   from    
  (select    
          recorddate,       customerid   ,       value,  
          row_number()over(partition   by   recorddate   order   by   value   desc)t      
          from   table_name)   r    
          where   r.t<=10

发表者:heyixiang

如果有并列的怎么办?

发表者:heyixiang

刚才试过了,row_number()就可以自动排除并列的情况,row_number会根据其它逻辑关系自动排列前10位,没有重复的值。

发表者:njhart2003

学习...

发表者:smin1994

mark

.
处理 SSI 文件时出错
© 2006-2008 All Rights Reserved