[LeetCode] 185. Department Top Three Salaries
·
코딩테스트/MySQL
🔗 Problem Linkhttps://leetcode.com/problems/department-top-three-salaries/description/❔Thinking각 부서별 임금 상위 3개를 상위 임금자라 할 때, 상위 임금자의 부서와 이름, 임금을 반환한다.Input:Employee table:+----+-------+--------+--------------+| id | name | salary | departmentId |+----+-------+--------+--------------+| 1 | Joe | 85000 | 1 || 2 | Henry | 80000 | 2 || 3 | Sam | 60000 | 2 ..
[LeetCode] 184. Department Highest Salary
·
코딩테스트/MySQL
🔗 Problem Linkhttps://leetcode.com/problems/department-highest-salary/description/❔ThinkingEmployee 테이블과 Department 테이블이 주어질 때, 각 부서별 최고 연봉을 받는 사람의 정보를 담은 테이블을 반환한다.Input: Employee table:+----+-------+--------+--------------+| id | name | salary | departmentId |+----+-------+--------+--------------+| 1 | Joe | 70000 | 1 || 2 | Jim | 90000 | 1 || 3 | Henry | 80000..
[LeetCode] 177. Nth Highest Salary
·
코딩테스트/MySQL
🔗 Problem Linkhttps://leetcode.com/problems/nth-highest-salary/description/❔Thinkingsalary가 담긴 Employee 테이블에서, 상위 n번째의 급여 값을 반환하는 함수를 작성한다.n번째는 중복을 포함하지 않는, 고유한 salary 값에서 계산한다.💻Solution1. DENSE_RANK() 함수를 활용한 풀이CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INTBEGIN RETURN ( SELECT salary FROM ( SELECT DISTINCT(salary), DENSE_RANK() OVER (ORDER BY salary DESC) AS rnk FRO..
[LeetCode] 178. Rank Scores
·
코딩테스트/MySQL
🔗 Problem Linkhttps://leetcode.com/problems/rank-scores/description/❔Thinkingid와 score가 적힌 테이블에서, score가 높은 순서대로 순위를 매겨 반환한다.동점자는 동일한 순위를 부여하고, 순위에 간격은 없도록 한다.💻Solution1. Dense_Rank 함수 사용SELECT score, DENSE_RANK() OVER (ORDER BY score DESC) AS 'rank'FROM Scores 2. 함수 없이 구현자신보다 높은 점수의 개수를 순위로 활용한다.DISTINCT는 동일한 점수를 한번만 세도록 한다.scores 테이블이 커질수록 성능이 저하된다.SELECT s1.score, (SELECT COUNT(DISTINCT ..
[Programmers] Level 2. 가격대 별 상품 개수 구하기
·
코딩테스트/MySQL
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking 상품 코드와 상품의 가격이 표시된 테이블에서 가격대와 가격대 별 개수를 반환한다. 💻Solution SELECT (PRICE DIV 10000) * 10000 AS PRICE_GROUP, COUNT((PRICE DIV 10000) * 10000) AS PRODUCTS FROM PRODUCT GROUP BY PRICE_GROUP ORDER BY PRICE_GROUP 🗝️keypoint / 연산과 DIV의 연산의 차이는 소수점 아래 결과의 출력 여부이다. (DIV는 결..
[Programmers] Level 2. 조건별로 분류하여 주문상태 출력하기
·
코딩테스트/MySQL
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking FOOD_ORDER에서 5월 1일을 기준의 주문ID, 제품ID, 출고일자, 출고 여부를 반환한다. 💻Solution SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS 'OUT_DATE', CASE WHEN OUT_DATE > '2022-05-01' THEN '출고대기' WHEN OUT_DATE