zoukankan      html  css  js  c++  java
  • MySql 四大排名函数

    四大排名函数
    一、ROW_NUMBER()
    Row_number() 在排名是序号 连续 不重复,即使遇到表中的两个一样的数值亦是如此

    select *,row_number() OVER(order by number ) as row_num
    from num

    数据如下


    结果如图


    注意:在使用row_number() 实现分页时需要特别注意一点,over子句中的order by 要与SQL排序记录中的order by保持一致,否则得到的序号可能不是连续的
    select *,row_number() OVER(order by number ) as row_num
    from num
    ORDER BY id

    二、rank()
    Rank() 函数会把要求排序的值相同的归为一组且每组序号一样,排序不会连续执行

    select *,rank() OVER(order by number ) as row_num
    from num

    结果如下:


    三、dense_rank()
    Dense_rank() 排序是连续的,也会把相同的值分为一组且每组排序号一样

    select *,dense_rank() OVER(order by number ) as row_num
    from num

    结果如下:


    四、ntile()
    Ntile(group_num) 将所有记录分成group_num个组,每组序号一样

    select *,ntile(2) OVER(order by number ) as row_num
    from num

  • 相关阅读:
    (转) c/c++调用libcurl库发送http请求的两种基本用法
    (转)unordered_map与map的对比(C++11新特性)
    libevent简单介绍
    libevent入门
    日期转换成字符串
    LinkServer
    GridView小记
    SoapHeader
    Credential
    Notepad++ Emmet/Zen coding插件的安装
  • 原文地址:https://www.cnblogs.com/uniquefrog/p/15720830.html
Copyright © 2011-2022 走看看