美文网首页
四大排名函数

四大排名函数

作者: 知止9528 | 来源:发表于2021-06-26 10:24 被阅读0次

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

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

    数据如下:


    image.png

    结果如图:


    image.png

    注意:在使用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 
    
    结果如下:
    
    image.png

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

    select *,dense_rank() OVER(order by number ) as row_num
    from num 
    
    结果如下:
    
    image.png

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

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

    相关文章

      网友评论

          本文标题:四大排名函数

          本文链接:https://www.haomeiwen.com/subject/alzayltx.html