zoukankan      html  css  js  c++  java
  • SQLSERVER 不并列连续排序,并列不连续排名,并列连续排名,分组排名

    CREATE TABLE #temp_student_result
        (
          student_name NVARCHAR(20) ,
          class_name NVARCHAR(20) ,
          score FLOAT
        );
        
    INSERT  INTO #temp_student_result
            ( student_name, class_name, score )
    VALUES  ( N'张三1', -- student_name - nvarchar(20)
              N'一班', -- class_name - nvarchar(20)
              15  -- score - float
              );
                  
    INSERT  INTO #temp_student_result
            ( student_name, class_name, score )
    VALUES  ( N'张三2', -- student_name - nvarchar(20)
              N'一班', -- class_name - nvarchar(20)
              80  -- score - float
              );
                  
    INSERT  INTO #temp_student_result
            ( student_name, class_name, score )
    VALUES  ( N'张三3', -- student_name - nvarchar(20)
              N'一班', -- class_name - nvarchar(20)
              60  -- score - float
              );
                  
    INSERT  INTO #temp_student_result
            ( student_name, class_name, score )
    VALUES  ( N'张三4', -- student_name - nvarchar(20)
              N'一班', -- class_name - nvarchar(20)
              100  -- score - float
              );
                  
    INSERT  INTO #temp_student_result
            ( student_name, class_name, score )
    VALUES  ( N'张三5', -- student_name - nvarchar(20)
              N'一班', -- class_name - nvarchar(20)
              100  -- score - float
              );
                  
    INSERT  INTO #temp_student_result
            ( student_name, class_name, score )
    VALUES  ( N'李四1', -- student_name - nvarchar(20)
              N'二班', -- class_name - nvarchar(20)
              15  -- score - float
              );
                  
    INSERT  INTO #temp_student_result
            ( student_name, class_name, score )
    VALUES  ( N'李四2', -- student_name - nvarchar(20)
              N'二班', -- class_name - nvarchar(20)
              80  -- score - float
              );
                  
    INSERT  INTO #temp_student_result
            ( student_name, class_name, score )
    VALUES  ( N'李四3', -- student_name - nvarchar(20)
              N'二班', -- class_name - nvarchar(20)
              60  -- score - float
              );
                  
    INSERT  INTO #temp_student_result
            ( student_name, class_name, score )
    VALUES  ( N'李四4', -- student_name - nvarchar(20)
              N'二班', -- class_name - nvarchar(20)
              86  -- score - float
              );
                  
    INSERT  INTO #temp_student_result
            ( student_name, class_name, score )
    VALUES  ( N'李四5', -- student_name - nvarchar(20)
              N'二班', -- class_name - nvarchar(20)
              95  -- score - float
              );
              
     --年级连续不并列排序
    SELECT  * ,
            ROW_NUMBER() OVER ( ORDER BY score DESC ) [rank]
    FROM    #temp_student_result;
    
     --年级并列不连续排名         
    SELECT  * ,
            RANK() OVER ( ORDER BY score DESC ) [rank]
    FROM    #temp_student_result;
      
    --年级并列连续排名         
    SELECT  * ,
            DENSE_RANK() OVER ( ORDER BY score DESC ) [rank]
    FROM    #temp_student_result; 
              
              
    --班级顺序排名(分组排序)
    SELECT  * ,
            ROW_NUMBER() OVER ( PARTITION BY class_name ORDER BY score DESC ) [rank]
    FROM    #temp_student_result;            
              
    DROP TABLE #temp_student_result;

    1,年级连续不并列排序

     --年级连续不并列排序
    SELECT  * ,
            ROW_NUMBER() OVER ( ORDER BY score DESC ) [rank]
    FROM    #temp_student_result;

    2,年级并列不连续排名

    --年级并列不连续排名         
    SELECT  * ,
            RANK() OVER ( ORDER BY score DESC ) [rank]
    FROM    #temp_student_result;

    3,年级并列连续排名

    --年级并列连续排名         
    SELECT  * ,
            DENSE_RANK() OVER ( ORDER BY score DESC ) [rank]
    FROM    #temp_student_result; 

     4,班级顺序排名(分组排序)

    --班级顺序排名(分组排序)
    SELECT  * ,
            ROW_NUMBER() OVER ( PARTITION BY class_name ORDER BY score DESC ) [rank]
    FROM    #temp_student_result;  

  • 相关阅读:
    【PKUWC2018】Minimax
    Codeforces Round #673
    【BZOJ1901】Dynamic Rankings
    【笔记】树状数组
    【CF1420E】Battle Lemmings
    Codeforces Round #672
    Problem A: STL——灵活的线性表
    algorithm
    iterator
    TRY vector
  • 原文地址:https://www.cnblogs.com/YoungHeart/p/15157424.html
Copyright © 2011-2022 走看看