zoukankan      html  css  js  c++  java
  • parttion by ~~~针对某个字段或多个字段重复,数据只取前n条或只保留m条。问题例子:1.主评论下的评论按着 时间正序最多只取前5条 2.获取最新登录记录.3.去重,去除重复的号码.....

    分组目前已知partition by、group by

    partition by用于给结果集分组分区,如果没有指定那么它把整个结果集作为一个分组,最后显示具体数据

    group by:通过所查询的数据的某一字段或属性进行分组,最后显示组数据,而不是具体数据,因为select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面

    根据实例这里要用到的是partition by

    1.主评论下的评论按着 时间正序最多只取前5条 

      针对主评论parentid字段,回评数量<=5

      rowindex=rownumber() over(partition by parentid order by Addtime asc)

      where rowindex<6

    2.获取最新登录记录

      针对用户loginuid,loginname登录,获取最新的用户登录记录,则获取最新的第一条

      rowtindex=ROW_NUMBER() over(partition by loginuid,loginname order by addtime des)

      where rowtindex=1

    3.去重,去除重复的号码,保留最新的一条

      delete RegisterUser

      where RU_Id in(

          select RU_Id from
          (select RU_Id ,rowindex=ROW_NUMBER() over(partition by RU_CellPhone order by RU_AddTime desc) from RegisterUser)q
          where rowindex>1

       )

  • 相关阅读:
    JS防Yahoo的选项卡导航特效
    纯CSS制作简洁带提示的导航
    绿色简单的CSS下拉菜单
    JS+CSS防FLASH效果竖向可折叠的滑动菜单
    鼠标划过快速展开的JS下拉菜单
    ASP.NET页面生命周期(转载)
    JS Eval函数作用(转载)
    Html十个不常用的标签(转载)
    CSS定位学习
    FireBug调试器相关(转载)
  • 原文地址:https://www.cnblogs.com/leap-li/p/10233980.html
Copyright © 2011-2022 走看看