SQL/코딩테스트42 [leetcode / MySQL] 180. Consecutive Numbers 문제 💡 Find all numbers that appear at least three times consecutively. Return the result table in any order. 테이블 형태 풀이 SELECT DISTINCT num0 AS ConsecutiveNums FROM (SELECT id , num AS num0 , LEAD(num, 1) OVER (ORDER BY id) AS num1 , LEAD(num, 2) OVER (ORDER BY id) AS num2 FROM Logs) logs WHERE num0=num1 AND num1=num2 해설 SELECT DISTINCT num0 AS ConsecutiveNums FROM (SELECT id , num AS num0 , LEAD(.. 2024. 1. 31. [leetcode / MySQL] 262. Trips and Users 문제 💡 The cancellation rate is computed by dividing the number of canceled (by client or driver) requests with unbanned users by the total number of requests with unbanned users on that day. Write a solution to find the cancellation rate of requests with unbanned users (both client and driver must not be banned) each day between "2013-10-01" and "2013-10-03". Round Cancellation Rate to two decima.. 2024. 1. 31. [leetcode / MySQL] 570. Managers with at Least 5 Direct Reports 문제 💡 Write a solution to find managers with at least five direct reports. Return the result table in any order. 테이블 형태 풀이 SELECT e2.name FROM Employee e1 INNER JOIN Employee e2 ON e1.managerId=e2.id GROUP BY e1.managerId HAVING COUNT(DISTINCT e1.id) >= 5 해설 SELECT e2.name FROM Employee e1 INNER JOIN Employee e2 ON e1.managerId=e2.id GROUP BY e1.managerId HAVING COUNT(DISTINCT e1.id) >= 5 최소 5명 이.. 2024. 1. 31. [프로그래머스 / MySQL] 있었는데요 없었습니다 문제 💡 관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다. 테이블 형태 풀이 SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS AS I INNER JOIN ANIMAL_OUTS AS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE I.DATETIME > O.DATETIME ORDER BY I.DATETIME 해설 FROM ANIMAL_INS AS I INNER JOIN ANIMAL_OUTS AS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE I.DATETIME > O.DATETIME 보호.. 2024. 1. 31. [프로그래머스 / MySQL] 상품 별 오프라인 매출 구하기 문제 💡 PRODUCT 테이블과 OFFLINE_SALE 테이블에서 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작성해주세요. 결과는 매출액을 기준으로 내림차순 정렬해주시고 매출액이 같다면 상품코드를 기준으로 오름차순 정렬해주세요. 테이블 형태 풀이 SELECT PRODUCT_CODE, SUM(PRICE * SALES_AMOUNT) AS SALES FROM PRODUCT AS P JOIN OFFLINE_SALE AS O ON P.PRODUCT_ID = O.PRODUCT_ID GROUP BY PRODUCT_CODE ORDER BY SALES DESC, PRODUCT_CODE 해설 FROM PRODUCT AS P JOIN OFFLINE_SALE AS O ON P.PRODUCT_ID = O.. 2024. 1. 31. [프로그래머스 / MySQL] 동명 동물 수 찾기 문제 💡 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요. 테이블 형태 풀이 SELECT NAME, COUNT(*) AS COUNT FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME HAVING COUNT >= 2 ORDER BY NAME 해설 FROM ANIMAL_INS WHERE NAME IS NOT NULL 두 번 이상 쓰인 이름과 사용 횟수를 출력하는 문제다 이름이 NULL 인 값은 집계에서 제외해야 하므로 WHERE 절에서 IS NOT NULL 조건을 설정했다(중요) SELECT NAME, COUN.. 2024. 1. 31. [프로그래머스 / MySQL] 가장 비싼 상품 구하기 문제 💡 PRODUCT 테이블에서 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 MAX_PRICE로 지정해주세요. 테이블 형태 풀이 SELECT MAX(PRICE) AS MAX_PRICE FROM PRODUCT 해설 SELECT MAX(PRICE) AS MAX_PRICE FROM PRODUCT 최댓값 구하기와 비슷한 문제다 가장 높은 판매가 = 판매금액의 최댓값 → PRICE의 MAX 값을 구한다 2024. 1. 31. [프로그래머스 / MySQL] 최댓값 구하기 문제 💡 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. 테이블 형태 풀이 SELECT MAX(DATETIME) AS 시간 FROM ANIMAL_INS 해설 SELECT MAX(DATETIME) AS 시간 FROM ANIMAL_INS 가장 최근에 들어왔다 = 가장 늦게 들어왔다 = 시간 값이 가장 크다 → DATETIME 컬럼의 MAX 값을 구한다 2024. 1. 31. [leetcode / MySQL] 1045. Customers Who Bought All Products 문제 💡 Write a solution to report the customer ids from the Customer table that bought all the products in the Product table. Return the result table in any order. 테이블 형태 풀이 SELECT customer_id FROM Customer GROUP BY customer_id HAVING COUNT(DISTINCT product_key) = (SELECT COUNT(*) FROM Product) 해설 SELECT customer_id FROM Customer GROUP BY customer_id HAVING COUNT(DISTINCT product_key) = (SELECT CO.. 2024. 1. 30. 이전 1 2 3 4 5 다음