zoukankan      html  css  js  c++  java
  • SQL Server 排名函数实现

    在SQL Server 中有四大排名函数分别是:

    1、row_number()

    2、ntile()

    3、rank()

    4、dense_rank()

    -------------------------------------------------------------------------

    为了方便演示我们先建立相关的表

    create table t(ID int ,Name varchar(32));
    go

    insert into t(ID,Name) values(1,'A'),(2,'A'),(3,'B'),(4,'C'),(5,'C'),(6,'D');
    go

    1、

      row_number();

        select ID,Name,ROW_NUMBER() over(order by Name) as rowNumber

        from t;

        go

        

        select ID,Name,(select count(*) from t as b where b.ID<=a.ID) as rowNumber
        from t as a;
        go

        

    2、

      ntile()

        select ID,Name,ntile(3) over(order by ID) nitleNumber from t;

        go

        

        declare @count as int =6;

        declare @groupsize as int =3;
        declare @tilesize as int =@count/@groupsize;

        select ID,Name,((select count(*)+1 from t as b where a.ID>=b.ID)/@tilesize) ntileNumber
        from t as a;
        go

        

    3、

      rank()

        select ID,Name,rank() over(order by Name)
        from t;
        go

        

        select ID,Name,(select count(*)+1 from t as b where b.Name <a.Name)

        from t as a;

        go

        

        

  • 相关阅读:
    广域网详解
    无线AP和无线路由器区别
    TRUNK的作用功能.什么是TRUNK
    name after, name for, name as
    让你的情商爆棚吧!
    综合布线系统之7个子系统构成
    网桥和交换机的工作原理及区别
    边界网关协议BGP
    OSPF协议详解
    路由信息协议(RIP)的防环机制
  • 原文地址:https://www.cnblogs.com/JiangLe/p/4403067.html
Copyright © 2011-2022 走看看