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;  

  • 相关阅读:
    为什么杜蕾斯的文案工资月薪5万?
    在独立音乐上,网易云音乐是如何甩了其他音乐平台几条街?
    两次大战,为什么德国成不了世界霸主呢?
    在大城市打拼的你,是想留下还是想攒够了钱回家?
    生存在互联网公司是种怎样的体验?
    5G为何采纳华为力挺的Polar码?一个通信工程师的大实话
    放下恩怨,曝小米中兴投关键性一票让华为顺利取得5G短码控制权
    中国唯一的科技城
    互联网圈的6大奇葩大产品经理:张小龙不在乎手机碎屏,马化腾让用户一秒变白痴
    为什么说中国快递分两种:一种叫顺丰,一种叫快递?
  • 原文地址:https://www.cnblogs.com/YoungHeart/p/15157424.html
Copyright © 2011-2022 走看看