zoukankan      html  css  js  c++  java
  • SQL四个排名函数(row_number、rank、dense_rank和ntile)的使用

    一、row_number

      row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。row_number函数的用法如下面的SQL语句所示:

    select row_number() over(order by field1) as row_number,* fromt_table

    二、rank

      rank函数考虑到了over子句中排序字段值相同的情况,为了更容易说明问题,在t_table表中再加一条记录,

    select rank() over(order by field1),* from t_table order by field1

    三、dense_rank

      dense_rank函数的功能与rank函数类似,只是在生成序号时是连续的,而rank函数生成的序号有可能不连续。如上面的例子中如果使用dense_rank函数,第4条记录的序号应该是2,而不是4。如下面的SQL语句所示:

    select dense_rank() over(order by field1),* from t_table order by field1

    四、ntile

      ntile函数可以对序号进行分组处理。这就相当于将查询出来的记录集放到指定长度的数组中,每一个数组元素存放一定数量的记录。ntile函 数为每条记录生成的序号就是这条记录所有的数组元素的索引(从1开始)。也可以将每一个分配记录的数组元素称为“桶”。ntile函数有一个参数,用来指 定桶数。下面的SQL语句使用ntile函数对t_table表进行了装桶处理:

    select ntile(4) over(order by field1)as bucket,* from t_table

  • 相关阅读:
    Linux同一机器设置多个IP2019-7-6
    使用Apache服务部署静态网站2019-7-5
    系统状态检测命令2019-7-5
    简单的shell脚本
    常用的系统工作命令2019-7-4
    Lnmp架构部署动态网站环境.2019-7-3-1.4
    Lnmp架构部署动态网站环境.2019-7-3-1.3
    Linux安装ftp服务-详细步骤
    循环删除List集合的元素
    反射-父类获取子类属性并赋值
  • 原文地址:https://www.cnblogs.com/lampon/p/3244506.html
Copyright © 2011-2022 走看看