SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
Create table Employee (id int, name varchar(255), salary int, departmentId int); Create table Department (id int, name varchar(255)); insert into Employee (id, name, salary, departmentId) values ('1', 'Joe', '85000', '1'); insert into Employee (id, name, salary, departmentId) values ('2', 'Henry', '80000', '2'); insert into Employee (id, name, salary, departmentId) values ('3', 'Sam', '60000', '2'); insert into Employee (id, name, salary, departmentId) values ('4', 'Max', '90000', '1'); insert into Employee (id, name, salary, departmentId) values ('5', 'Janet', '69000', '1'); insert into Employee (id, name, salary, departmentId) values ('6', 'Randy', '85000', '1'); insert into Employee (id, name, salary, departmentId) values ('7', 'Will', '70000', '1'); insert into Department (id, name) values ('1', 'IT'); insert into Department (id, name) values ('2', 'Sales'); WITH data AS ( SELECT d.name AS Department, e.name AS Employee, e.salary, dense_rank() OVER (PARTITION BY e.departmentId ORDER BY e.salary DESC) rnk FROM Employee e INNER JOIN Department d ON e.departmentId = d.id ) SELECT Department, Employee, salary FROM data WHERE rnk<=3 ORDER BY Department, rnk ;
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear