当前位置:首页 > 技术问答集
firefox

请教一个排名的问题?

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

有数据如下:表   t_1  
  (c_1,   c_2,   c_3)  
  a,     a1,   21  
  a,     b1,   20  
  b,     a1,   3  
  b,     b1,   4  
  b,     c1,   2  
  c,     d1,   10  
  我要得到的结果如下:  
  c_1,   排名   ,   c_2,       c_3  
  a,         1,                 a1,           21  
  a,         2,                 b1,           20  
   
  b,         1,                 b1,           4  
  b,         2,                 a1,         3  
  b,         3,                 c1,         2  
   
  c,       1,                   d1,         10  
  以字段c_1分组,以c_3排序(降序),对每组分别进行排名,要显示出排名(1,2,1,2,3,1..)  
  能否不用循环去做  
  谢谢

· 网友精彩回答:

发表者:wgsasd311

select   a.c_1,[排名]=(select   count(1)   from   t_1   where   c_1=a.c_1   and   a.c_3<=c_3),a.c_2,a.c_3    
  from   t_1   a   order   by   c_1,c_3

.
© 2006-2008 All Rights Reserved