QuXiangjie / Study-Review

自己欠缺的还太多了,希望通过总结每天的学习内容,整理每天的思绪来丰富自己的知识库。我想成为一名优秀的金融数据分析师,并行发展技术与商业业务。博客内容为:数理统计、财务业务、Python(数据分析及可视化)、Excel(数据分析)、SQL、英文
0 stars 0 forks source link

184. Department Highest Salary #8

Open QuXiangjie opened 5 months ago

QuXiangjie commented 5 months ago

Question medium Question hard

SELECT Department, Employee, Salary
FROM (
    SELECT 
        d.name AS Department,
        e.name AS Employee,
        e.salary AS Salary,
        DENSE_RANK() OVER (PARTITION BY d.name ORDER BY Salary DESC) AS rnk
    FROM Employee e
    JOIN Department d
    ON e.departmentId = d.id
) AS rnk_tbl
WHERE rnk <= 3;

Dense_Rank() over(Partition by d.name Order by Salary Desc) as rnk 使用partition by 分组,分组后按照salary 排序 取数可以使用添加1列排序来进行实现

here is the way to use subtable with subtable as( ), subtable 1 as( ) select....

QuXiangjie commented 4 months ago
SELECT d.name AS Department
      ,e.name AS Employee
      ,e.salary AS Salary
FROM Employee AS e
 JOIN Department AS d ON e.departmentId=d.id
WHERE (departmentId,salary) IN(SELECT departmentId,MAX(salary) 
                               FROM Employee
                               GROUP BY departmentId)