• SQL 之 ROW_NUMBER() OVER函数用法


    语法:

    row_number() OVER (PARTITION BY COL1 ORDER BY COL2)

    表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

    实例:

    empid       deptid      salary
    ----------- ----------- ---------------------------------------
    1           10          5500.00
    2           10          4500.00
    3           20          1900.00
    4           20          4800.00
    5           40          6500.00
    6           40          14500.00
    7           40          44500.00
    8           50          6500.00
    9           50          7500.00

    需求:根据部门分组,显示每个部门的工资等级

    1. SELECT *
    2. , Row_Number() OVER (partition by deptid ORDER BY salary desc) AS rank
    3. FROM employee

    预期结果:

    empid       deptid      salary                                  rank
    ----------- ----------- --------------------------------------- --------------------
    1           10          5500.00                                 1
    2           10          4500.00                                 2
    4           20          4800.00                                 1
    3           20          1900.00                                 2
    7           40          44500.00                                1
    6           40          14500.00                                2
    5           40          6500.00                                 3
    9           50          7500.00                                 1
    8           50          6500.00                                 2

  • 相关阅读:
    多级缓存架构
    Ansible---playbook 剧本
    2020携程java面试题整理,开发实习一面面经
    手把手教你在项目中引入Excel报表组件
    书生·浦语大模型开源体系(六)作业
    epoll 定时器
    Spring原理
    「PAT乙级真题解析」Basic Level 1106 2019数列 (问题分析+完整步骤+伪代码描述+提交通过代码)
    解锁远程联机模式:使用MCSM面板搭建我的世界服务器,并实现内网穿透公网访问
    一文总结提示工程框架,除了CoT还有ToT、GoT、AoT、SoT、PoT
  • 原文地址:https://blog.csdn.net/weixin_48272780/article/details/127895673