这个SQL语句 有点难度大侠们过来看看 RRS feed

  • 问题

  • select * from (
    select dense_rank() OVER (ORDER BY s.stocktype asc ,x.updatetime desc,x.userid)AS 
    RowNo,ROW_NUMBER() OVER(PARTITION BY s.stocktype,s.userid ORDER BY s.stocktype desc,x.updatetime asc,x.userid) as rn ,
    s.Remark,s.StockType from stockforsearch s WITH (NOLOCK)
    left join xinpian_userlog x WITH (NOLOCK) on s.userid=x.userid
    where model like 'lm358%')t where rn<2 order by rowno asc
    我现在只能做到这样了 我想取rn最大值 现在都是1
    怎么实现 我的目的就是想取相同RowNo 下的rn值 最大的那条 rowNO是用来分页的 rn是用来分组的 希望大家给个意见
    • 已编辑 LevonLee 2010年12月14日 13:47 弄张图
    2010年12月14日 13:39


  • 使用AdventureWorks示例数据库中的表[AdventureWorks].[Person].[Address],以下方法实现的是类似你的需求,即按各州分组,取邮编最大的那一个市.

    with temp as
    SELECT stateprovinceid,postalcode,city, ROW_NUMBER() OVER(PARTITION BY stateprovinceid ORDER BY postalcode desc) as rn
     FROM [AdventureWorks].[Person].[Address]
    select * from temp where rn=1 order by StateProvinceID asc

    Hope it helps.

    Mark as Answer if it helps. This posting is provided "AS IS" with no warranties, confers no rights.
    • 已标记为答案 LevonLee 2010年12月16日 7:01
    2010年12月15日 7:31