zoukankan      html  css  js  c++  java
  • 【T-SQL系列】新的排序函数

    如:ROW_NUMBER、RANK、DENSE_RANK
    三个分析函数都是按照col1分组内从1开始排序

    ROW_NUMBER() 是没有重复值的排序(即使两天记录相等也是不重复的),可以利用它来实现分页
    DENSE_RANK() 是连续排序,两个第二名仍然跟着第三名
    RANK() 是跳跃拍学,两个第二名下来就是第四名

    示例:

    DECLARE @t1 TABLE
        (
          Sequence INT ,
          Name VARCHAR(20) ,
          Score INT
        )
    
    INSERT  INTO @t1
            SELECT  1 ,
                    '' ,
                    7
            UNION ALL
            SELECT  2 ,
                    '' ,
                    8
            UNION ALL
            SELECT  3 ,
                    '' ,
                    8
            UNION ALL
            SELECT  4 ,
                    '' ,
                    8
            UNION ALL
            SELECT  5 ,
                    '' ,
                    9
            UNION ALL
            SELECT  1 ,
                    '' ,
                    10
            UNION ALL
            SELECT  2 ,
                    '' ,
                    6
            UNION ALL
            SELECT  3 ,
                    '' ,
                    10
            UNION ALL
            SELECT  4 ,
                    '' ,
                    6
            UNION ALL
            SELECT  5 ,
                    '' ,
                    8
    
    SELECT  Sequence ,
            Name ,
            Score ,
            ROW_NUMBER() OVER ( ORDER BY Sequence, Score ) AS RowNumber1 ,
            ROW_NUMBER() OVER ( ORDER BY Sequence, Score DESC ) AS RowNumber2 ,
            RANK() OVER ( ORDER BY Score ) AS Rnk ,
            DENSE_RANK() OVER ( ORDER BY Score ) AS DenseRnk ,
            NTILE(15) OVER ( ORDER BY Score ) AS Bucket
    FROM    @t1

    结果集:

  • 相关阅读:
    PerfDog
    adb 常用操作
    netstat命令(net-tools)
    资源路径总结:
    四个作用域对象:
    jsp的 九大内置对象
    Jsp 的语法和指令
    JSP 学习
    server.xml 文件:
    Web.xml 文件使用总结:
  • 原文地址:https://www.cnblogs.com/Bobby0322/p/4082837.html
Copyright © 2011-2022 走看看