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;  

  • 相关阅读:
    每个Java开发人员都应该知道的10个基本工具
    2019年让程序员崩溃的 60 个瞬间,笑死我了
    面试官:服务器安装 JDK 还是 JRE?可以只安装 JRE 吗?
    腾讯工作近十年大佬:不是我打击你!你可能真的不会写Java
    作为Java开发人员不会饿死的5个理由
    趣味算法:国王和100个囚犯
    阿里第二轮面试:手写Java二叉树
    Linux软件安装——服务管理
    Linux帮助——重要文件
    Linux帮助——常用命令
  • 原文地址:https://www.cnblogs.com/YoungHeart/p/15157424.html
Copyright © 2011-2022 走看看