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;  

  • 相关阅读:
    bzoj 3262: 陌上花开
    hdu 5618 Jam's problem again
    bzoj 1176: [Balkan2007]Mokia
    bzoj 2683: 简单题
    Codevs 1080 线段树练习(CDQ分治)
    bzoj 3223: Tyvj 1729 文艺平衡树
    bzoj 1503: [NOI2004]郁闷的出纳员
    bzoj 1208: [HNOI2004]宠物收养所
    bzoj 1588: [HNOI2002]营业额统计
    bzoj 3224: Tyvj 1728 普通平衡树
  • 原文地址:https://www.cnblogs.com/YoungHeart/p/15157424.html
Copyright © 2011-2022 走看看