목록SQL/Window Function (4)
우노
문제 링크 https://leetcode.com/problems/rank-scores/ 풀이 점수 순위를 매기는 SQL 쿼리를 작성하면 되는 문제입니다. Window Function의 DENSE_RANK()를 사용해 해결할 수 있습니다. DENSE_RANK()는, 동일값인 경우엔 동일 순위를 부여하고, 이후 순위는 연이어서 부여하는 기능입니다. 1 2 2 3 전체 쿼리는 아래와 같습니다. 전체 쿼리 SELECT score, DENSE_RANK() OVER(ORDER BY score DESC) AS 'rank' FROM Scores
문제 링크 https://leetcode.com/problems/department-top-three-salaries/ 풀이 부서 별 급여 3순위에 드는 사원들을 출력하면 되는 문제입니다. Window Function의 DENSE_RANK와 JOIN을 사용해 해결할 수 있습니다. DENSE_RANK()는, 동일값인 경우엔 동일 순위를 부여하고, 이후 순위를 연이어서 부여하는 기능입니다. 1 2 2 3 먼저, 아래와 같은 서브쿼리를 작성합니다. SELECT id, name, salary, departmentId, DENSE_RANK() OVER(PARTITION BY departmentId ORDER BY salary DESC) AS salary_rank FROM Employee | id | name | ..
문제 링크 https://leetcode.com/problems/department-highest-salary/ 풀이 각 부서에서 급여가 가장 높은 직원을 찾는 SQL 쿼리를 작성하면 됩니다. Window Function과 JOIN을 사용해 해결할 수 있습니다. 먼저, 아래와 같은 서브쿼리를 작성합니다. SELECT id, name, salary, departmentId, MAX(salary) OVER(PARTITION BY departmentId) AS max_salary FROM Employee | id | name | salary | departmentId | max_salary | | -- | ----- | ------ | ------------ | ---------- | | 1 | Joe | 7..
문제 링크 https://leetcode.com/problems/consecutive-numbers/ 풀이 연속으로 세 번 이상 나타나는 모든 숫자를 찾는 SQL 쿼리를 작성하면 되는 문제입니다. Window Function과 LEAD를 사용해 해결할 수 있습니다. 먼저, 아래와 같은 서브쿼리를 작성합니다. SELECT num, LEAD(num, 1) over(ORDER BY id) AS next, LEAD(num, 2) over(ORDER BY id) AS nextafter FROM Logs | num | next | nextafter | | --- | ---- | --------- | | 1 | 1 | 1 | | 1 | 1 | 2 | | 1 | 2 | 1 | | 2 | 1 | 2 | | 1 | 2 |..