TIL💡/Database(27)
-
[MySQL] 196. Delete Duplicate Emails
이거 엄청나게 유용한 문제이다. 중복되는 row를 제거하는 문제이다. 셀프 조인하여 행 간의 비교를 수행하고, 같은 값을 같되 아이디가 다른 row가 존재하면 가장 작은 값만 남기고 나머지는 삭제한다. DELETE p1 FROM Person p1, Person p2 WHERE p1.email = p2.email AND p1.id > p2.id; 같은 테이블을 구분하기 위해 p1, p2라고 alias를 지정한다.
2022.11.27 -
[MySQL] 1873. Calculate Special Bonus
UPDATE 문 문제도 있었다! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ UPDATE에서도 CASE 문을 써서 vice versa하게 업데이트할 수 있다. UPDATE Salary SET sex = CASE sex WHEN 'm' THEN 'f' ELSE 'm' END;
2022.11.27 -
[MySQL] 1873. Calculate Special Bonus
https://leetcode.com/problems/calculate-special-bonus/?envType=study-plan&id=sql-i Calculate Special Bonus - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 방식은 크게 2가지가 있다. 1. UNION 2. CASE WHEN THEN UNION의 경우에는 보너스가 있는 경우와 없는 경우를 합한다. SELECT employee_id, salary as bonus FROM em..
2022.11.27 -
[MySQL] 176. Second Highest Salary
https://leetcode.com/problems/second-highest-salary/ Second Highest Salary - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Medium 문제라서 SQL 메소드를 잘 써야 한다. 나는 우선 랭킹을 만든 후 랭킹에 해당하는 2번째 Salary 값을 가져오려고 했다. 그리고 CASE WHEN ELSE THEN을 써서 2번째 값이 없는 경우도 대처하려고 했다. # Write your MySQL query st..
2022.11.26 -
[MySQL] 584. Find Customer Referee
테이블에서 referee_id 가 2가 아닌 경우를 선택하면 돼서, 처음에는 아래와 같이 작성했다. SELECT name FROM customer WHERE referee_Id 2; 하지만 이 쿼리는 NULL 값(즉 누구에게도 referred 되지 않은 경우)는 선택되지 않는다. 따라서 NULL 값은 따로 선택해야 한다. SELECT name FROM customer WHERE referee_id 2 OR referee_id IS NULL; MySQL의 경우는 3가지의 로직이 존재한다.(TRUE, FALSE, UNKNOWN → NULL) NULL은 말 그대로 anything이다. 그것이 바로 MySQL이 IS NULL과 IS NOT NULL을 제공하는 이유이다. SELECT name FROM custom..
2022.11.26 -
[MySQL] 597. Friend Requests I: Overall Acceptance Rate
이게 Easy라니..나 생각보다 SQL을 훨씬 못하는 상태였다니... 프리미엄 가입한 김에 열심히 풀어야겠다. https://leetcode.com/problems/friend-requests-i-overall-acceptance-rate/ Friend Requests I: Overall Acceptance Rate - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이 문제는 두 테이블을 사용하되, 조인할 필요는 없다. 우선 내가 맞닥뜨린 문제는 크게 두 가지이..
2022.11.26