문제 개요 3개 이상 연속되는 값들의 집합을 구하는 문제입니다. 문제 접근 3개의 접근자를 지정해 값이 같을 때의 값들을 가져옵니다. FROM에서 여러개를 지정할 수 있다는 것을 알았습니다. 코드 SELECT DISTINCT l1.num as `ConsecutiveNums` FROM Logs l1, Logs l2, Logs l3 WHERE l1.Id = l2.Id - 1 AND l2.Id = l3.Id - 1 AND l1.Num = l2.Num AND l2.Num = l3.Num ; 문제 https://leetcode.com/problems/consecutive-numbers/
문제 개요 N 번째 높은 봉급을 출력하는 문제입니다. 문제 접근 SQL에서 function을 작성하고 LIMIT OFFSET을 사용하여 해당 위치의 한개의 레코드만을 가져옵니다. 코드 CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN SET N = N-1; RETURN ( SELECT DISTINCT(salary) from Employee order by salary DESC LIMIT 1 OFFSET N ); END 문제 https://leetcode.com/problems/nth-highest-salary/
문제 개요 두 번째로 큰 값을 구하는 문제입니다. 문제 접근 WHERE 절로 가장 큰 값을 제외한 값들 중 가장 큰 값을 가져옵니다. 코드 SELECT MAX(SALARY) AS `SecondHighestSalary` FROM EMPLOYEE WHERE SALARY (SELECT MAX(SALARY) FROM EMPLOYEE); 문제 https://leetcode.com/problems/second-highest-salary/
문제 개요 GROUP BY와 HAVING 사용법을 익히는 문제입니다. 문제 접근 테이블에서 중복된 값을 찾기 위해서는 GROUP BY를 통해 찾을 부분을 그룹으로 만들어주고 HAVING을 이용해 조건을 만들어주면 됩니다. https://jminie.tistory.com/24 위 블로그를 참고하였습니다. 코드 SELECT email FROM Person GROUP BY email HAVING COUNT(email) > 1; 문제 https://leetcode.com/problems/duplicate-emails/
문제 개요 LEFT JOIN 사용방법을 묻는 문제입니다. 문제 접근 SQL을 배우면서 처음 사용해본 LEFT JOIN입니다. ON 뒤의 식을 기준으로 JOIN합니다. 코드 SELECT p.firstName, p.lastName, a.city, a.state FROM Person AS p LEFT JOIN Address AS a ON p.personId = a.personId; 문제 https://leetcode.com/problems/combine-two-tables/
