zoukankan      html  css  js  c++  java
  • SQL CTE 和 row_number 配合 用法

    create table employee (empid int ,deptid int ,salary decimal(10,2))
    insert into employee values(1,10,5500.00)
    insert into employee values(2,10,4500.00)
    insert into employee values(3,20,1900.00)
    insert into employee values(4,20,4800.00)
    insert into employee values(5,40,6500.00)
    insert into employee values(6,40,14500.00)
    insert into employee values(7,40,44500.00)
    insert into employee values(8,50,6500.00)
    insert into employee values(9,50,7500.00)

    select  *  from  employee

    with cte  as

    (

    SELECT deptid,salary , Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee

    )

    ---select  * from cte

    -----cte 的用法 相当于 一个表变量 ,把子查询的值赋予给我 cte个表  然后下面的操是针对 cte这个对象操作的,同理也是对 子查询的表操作。

    -----只留每个部门工资最高的。 原理:部门内 排序不为1的都删除。
    delete  from  cte  where RANK<>1

    ---select  *  from employee

    可随意转载,欢迎署名!
  • 相关阅读:
    Github简单使用
    软件架构
    软件架构
    软件架构
    VB.net 捕获项目全局异常
    C#里面的三种定时计时器:TIMER
    深入分析委托与事件
    C#预处理器指令
    C# 实现透明可移动窗体
    多元一次方程解法 C++
  • 原文地址:https://www.cnblogs.com/netsa/p/2854437.html
Copyright © 2011-2022 走看看