sql 17

[세무민의 코딩일기] LeetCode Rising Temperature문제풀이

오늘 포스팅 할 내용은 LeetCode 문제 중 하나인 Rising Temperature문제를 풀어봤습니다. 1. 문제 설명 2. 문제 예시 3. 문제 풀이 이번 문제는 전일 대비 온도가 높은 ID를 출력해주면 됩니다. 그렇다면 해당 문제를 접근한는 방법은 현재일과 현재일에서 DATE_ADD를 통해 1일을 추가한 일자와 비교하여 온도를 비교해주면 된다. 또 다른 방법은 DATEDIFF를 이용하여 날짜의 차이가 1일인 경우 온도를 비교해주면 된다. /** * LeetCode : Rising Temperature * URL : https://leetcode.com/problems/rising-temperature/ */ # DATEDIFF를 통해 날짜의 차이를 구하는 방식 select w1.id from W..

Algorithm/leetCode 2022.01.13

[세무민의 코딩일기] LeetCode Duplicate Emails 문제풀이

오늘 포스팅 할 내용은 LeetCode 문제 중 하나인 Duplicate Emails문제를 풀어봤습니다. 1. 문제 설명 2. 문제 예시 3. 문제 풀이 이번 문제는 이메일 중복이 존재한다면 해당 중복 이메일을 출력해주면 되는 문제입니다. 이 문제에서는 가장 쉽게 할 수 있는건 이메일로 Group by를 한 뒤 1개 이상인 이메일을 출력해주면 됩니다. 다른 방법으로는 서브쿼리에서 email의 count를 구하여 1개 이상의 값을 구하면 됩니다. # 서브 쿼리 사용 select duals.email as Email from ( SELECT id, email, count(email) as numEmail from Person group by email ) as duals where duals.numEmail..

Algorithm/leetCode 2022.01.11

[세무민의 코딩일기] LeetCode Second Highest Salary 문제풀이

오늘 포스팅 할 내용은 LeetCode 문제 중 하나인 Second Highest Salary 문제를 풀어봤습니다. 1. 문제 설명 2. 문제 예시 3. 문제 풀이 이번 문제는 말 그대로 2번째로 급여가 높은 사용자의 급여를 출력하면 되며 만약에 2번째로 높은 급여가 없는 경우 Null을 출력하면 된다. 위의 경우를 가장 쉽게 생각해보면 가장 Max의 값을 제외한 값이 2번째의 값이다. 따라서 Max인 값을 제외하고 가장 첫번째의 값을 출력하면 된다. # Time : 482ms SELECT max(salary) as SecondHighestSalary FROM Employee where not salary = (select max(salary) from Employee) # Time : 735ms SEL..

Algorithm/leetCode 2022.01.09

[세무민의 코딩일기] LeetCode Nth Highest Salary 문제풀이

오늘 포스팅 할 내용은 LeetCode에 있는 Nth Highest Salary 문제를 풀어봤습니다. 1. 문제 설명 2. 문제 및 예시 3. 문제 풀이 이번 문제는 해석하면 N이라는 특정 값을 입력했을 때 해당 순위의 Salary를 출력하고 없는 경우라면 Null을 출력하는 문제이다. 또한 이번 문제는 N을 입력을 해주기 때문에 DB Function을 이용한 문제라는 것도 알아야 한다. CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN RETURN ( SELECT distinct salary FROM (SELECT id, salary, dense_rank() over(order by salary desc) as totals from Employ..

Algorithm/leetCode 2022.01.08

[세무민의 코딩일기] 프로그래머스 : 우유와 요거트가 담긴 장바구니 문제 풀이

오늘 포스팅 할 내용은 Summer/Winter Coding(2019) 문제에 나온 우유와 요거트가 담긴 장바구니 문제를 풀어봤습니다. 1. 문제 설명 2. 문제 및 예시 3. 문제 풀이 이번 문제는 위의 내용처럼 우유와 요거트 2개를 모두 가지고 있는 CART_ID를 구하면 됩니다. 그렇기 때문에 조건식에 우유와 요거트가 각각 존재하는지 구분하여 검색해주면 됩니다. ## 방법 1 SELECT DISTINCT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Milk' AND CART_ID IN (SELECT DISTINCT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Yogurt') ## 방법 2 SELECT DISTINCT milk_tb.CART_I..