본문 바로가기

전체 글 보기29

[LeetCode] 1158. Market Analysis 1 - IFNULL() : 특정 컬럼값이 null일 때 0으로 표시하기 문제 링크 : https://leetcode.com/problems/market-analysis-i 문제설명- Users, Orders, Items 3개의 테이블이 있다. (이커머스 업계에서 볼 수 있는 전형적인 테이블 관계.)- 이때 user는 buyer가 될 수도 있고 seller가 될 수도 있다.- [user, join date, 주문 수]를 추출하는데, user가 buyer로써 2019년에 주문한 건에 대해서 추출한다.  솔루션맨 처음에 풀었던 코드.SELECT u.user_id AS buyer_id ,u.join_date AS join_date ,CASE WHEN oc.order_cnt IS NULL THEN 0 ELSE oc.order_cnt END AS orders_in_2.. 2025. 1. 21.
[LeetCode] 262. Trips and Users - LIKE 사용하여 코드 줄이기 문제링크 : https://leetcode.com/problems/trips-and-users 문제설명- 택시콜 기록 정보를 담은 Trips, 이용자 정보를 담은 Users 테이블이 주어짐.- 취소율 (cancellation rate) : (unbanned users가 한 취소요청 건 수 - client, driver 모두) / (그 날에 unbanned users가 한 모든 요청 건수)- 2013.10.01 ~ 2013.10.03 기간의 취소율 구하기- 정렬 상관X 솔루션SELECT request_at as Day ,ROUND(COUNT(CASE WHEN status = 'cancelled_by_client' OR status = 'cancelled_by_driver' THEN id END) .. 2025. 1. 17.
[LeetCode] 1141. User Activity for the Past 30 Days 1 - 두 날짜의 차이 문제 링크 : https://leetcode.com/problems/user-activity-for-the-past-30-days-i/description/ 문제설명- 2019년 7월 27일을 종료일자로 해서 30일 이내에 일별 active user의 수를 세기- 2019년 7월 27일 포함 ! (inclusively)- 순서 상관X 솔루션SELECT activity_date AS day ,COUNT(DISTINCT user_id) AS active_usersFROM ActivityWHERE activity_date BETWEEN '2019-06-28' AND '2019-07-27'GROUP BY activity_dateORDER BY day ASC- 처음에 문제 이해를 못해서 샘플 출력결과를 .. 2025. 1. 10.
Correlated Subquery Corrlated Subquery는 MySQL 공식문서에서 다음과 같이 정의되어 있다. https://dev.mysql.com/doc/refman/8.4/en/correlated-subqueries.htmlCorrelated Subquery (상호연관 서브쿼리)란 이름에서도 유추할 수 있듯이외부의 테이블을 참조하는 서브쿼리를 의미한다. 2025. 1. 6.
[LeetCode] 1084. Sales Analysis 3 - 특정 날짜가 어느 분기에 속하는지 체크하기 문제 링크 : https://leetcode.com/problems/sales-analysis-iii/ 문제 설명- 2019년 1분기에만 판매된 products 출력 (2019.01.01 ~ 2019.03.31)- 결과의 순서 상관X 솔루션SELECT DISTINCT P.product_id, P.product_nameFROM Sales S LEFT JOIN Product P ON S.product_id = P.product_idWHERE S.sale_date BETWEEN '2019-01-01' AND '2019-03-31' AND S.product_id NOT IN ( SELECT product_id FROM Sales WHERE sale_date '201.. 2025. 1. 5.
[LeetCode] 672. Swap Salary - UPDATE와 CASE 같이 쓰기 문제 링크 : https://leetcode.com/problems/swap-salary/ 문제 설명컬럼 sex에서 f → m으로, m → f로 swap하는 단순한 문제.단, 몇 가지 조건이 있다.1) 하나의 update문만 사용하고, 중간 임시 테이블을 사용하지 말 것.2) 어떤 select문이라도 사용하지 말 것. 솔루션update문 기본 사용법UPDATE 테이블명SET 컬럼 = 값WHERE 조건식 UPDATE SalarySET sex = CASE WHEN sex = 'f' THEN 'm' WHEN sex = 'm' THEN 'f' END 2024. 9. 16.