• 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

        

        

  • 相关阅读:
    [LeetCode] 824. Goat Latin
    [LeetCode] 21. Merge Two Sorted Lists
    [LeetCode] 1021. Remove Outermost Parentheses
    [Note] Clipboard.js 使用
    [LeetCode] 665. Non-decreasing Array
    [LeetCode] 897. Increasing Order Search Tree
    [LeetCode] 136. Single Number
    [LeetCode] 822. Card Flipping Game
    [LeetCode] 922. Sort Array By Parity II
    [LeetCode] 965. Univalued Binary Tree
  • 原文地址:https://www.cnblogs.com/JiangLe/p/4403067.html
Copyright © 2020-2023  润新知