userID  dateYM      number
001              200901              50
001              200902              60
002              200901              20
002              200902              70
003              200903              80
003              200903              100以上数据,想要查出某用户在某月下的number排名。
在网上查了好多,都实现不了我想要的,请各位帮忙!!谢谢!!

解决方案 »

  1.   

    SELECT user_id, dateym, rn
      FROM (SELECT user_id, dateym,
                   DENSE_RANK () OVER (PARTITION BY dateym ORDER BY "a.number" DESC)
                                                                               rn
              FROM a
             WHERE dateym = '200903')
     WHERE user_id = '003'
      

  2.   

    select *
      from (select userID,
                   dateYM,
                   number,
                   row_number() over(partition by dateYMorder by number ) number_order
              from t
             where dateYM = 'your dateYM')
     where userID  = 'your userId'
      

  3.   

    晕,这是重复发的吗,该结贴啦http://topic.csdn.net/u/20090731/17/f65f9f10-3ac5-4b32-a1d6-780fb0459942.html