zoukankan      html  css  js  c++  java
  • 184. 部门工资最高的员工

    184. 部门工资最高的员工
    
    select 
        d.Name as Department,
        e.Name as Employee,
        e.Salary 
    from 
        Employee e,Department d 
    where
        e.DepartmentId=d.id 
        and
        (e.Salary,e.DepartmentId) in (select max(Salary),DepartmentId from Employee group by DepartmentId);

    /* Write your T-SQL query statement below */
    
    -- 每个部门最高
    SELECT S.NAME, S.EMPLOYEE, S.SALARY
      FROM (SELECT D.NAME,
                   T.NAME EMPLOYEE,
                   T.SALARY,
                   ROW_NUMBER() OVER(PARTITION BY T.DEPARTMENTID ORDER BY T.SALARY DESC) RN
              FROM EMPLOYEE T
              LEFT JOIN DEPARTMENT D
                ON T.DEPARTMENTID = D.ID) S
     WHERE S.RN = 1
    -- 每个部门前2高
    SELECT S.NAME, S.EMPLOYEE, S.SALARY
      FROM (SELECT D.NAME,
                   T.NAME EMPLOYEE,
                   T.SALARY,
                   ROW_NUMBER() OVER(PARTITION BY T.DEPARTMENTID ORDER BY T.SALARY DESC) RN
              FROM EMPLOYEE T
              LEFT JOIN DEPARTMENT D
                ON T.DEPARTMENTID = D.ID) S
     WHERE S.RN <= 2
    -- 每个部门第一第三高
    SELECT S.NAME, S.EMPLOYEE, S.SALARY
      FROM (SELECT D.NAME,
                   T.NAME EMPLOYEE,
                   T.SALARY,
                   ROW_NUMBER() OVER(PARTITION BY T.DEPARTMENTID ORDER BY T.SALARY DESC) RN
              FROM EMPLOYEE T
              LEFT JOIN DEPARTMENT D
                ON T.DEPARTMENTID = D.ID) S
     WHERE S.RN = 1 OR S.RN = 3
  • 相关阅读:
    超神头文件
    世界上还有比二分更容易错的算法吗?
    【POJ 1734】Sightseeing trip
    P1303 A*B Problem
    P1601 A+B Problem(高精)
    P1051 谁拿了最多奖学金
    【P1025】数的划分
    P1005 矩阵取数游戏
    P1006 传纸条
    邮票问题
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/14177725.html
Copyright © 2011-2022 走看看