A B C D 
主键为A
C为时间列我需要根据B分组查询分组后最近时间C最在行的所有信息(关键获取那行的D(价格))目的即获取最近单据的价格信息求高手

解决方案 »

  1.   


    --方法一
    select B,MIN(A)KEEP(DENSE_RANK FIRST ORDER BY C DESC) A,
             MIN(C)KEEP(DENSE_RANK FIRST ORDER BY C DESC) C,
             MIN(D)KEEP(DENSE_RANK FIRST ORDER BY C DESC) D
      from table_name
     group by B;--方法二
    select A,B,C,D
      from
    (select A,B,C,D,ROW_NUMBER()OVER(PARTITION BY B ORDER BY C DESC) ROW_
      from table_name)
     where row_=1;
      

  2.   

    select A,B,C,D
      from
    (select A,B,C,D,ROW_NUMBER()OVER(PARTITION BY B ORDER BY C DESC) ROW_
      from table_name)
     where row_=1;