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

  • 相关阅读:
    团队冲刺2---个人工作总结一(5.25)
    第十二周学习进度
    课堂作业——找水王
    个人冲刺07
    第十五周学习进度情况
    构建之法阅读笔记06
    构建之法阅读笔记05
    第十四周学习进度情况
    个人冲刺06
    个人冲刺05
  • 原文地址:https://www.cnblogs.com/uniquefrog/p/15720830.html
Copyright © 2011-2022 走看看