본문 바로가기

SQL/코딩테스트42

[leetcode / MySQL] 1084. Sales Analysis III 문제 💡 Write a solution to report the products that were only sold in the first quarter of 2019. That is, between 2019-01-01 and 2019-03-31 inclusive. Return the result table in any order. 테이블 형태 풀이 SELECT p.product_id , product_name FROM Product as p JOIN Sales as s ON p.product_id=s.product_id GROUP BY s.product_id HAVING MIN(sale_date) >= '2019-01-01' AND MAX(sale_date) = '2019-01-01' AND MAX(s.. 2024. 1. 30.
[leetcode / MySQL] 184. Department Highest Salary 문제 💡 Write a solution to find employees who have the highest salary in each of the departments. Return the result table in any order. 테이블 형태 풀이 SELECT D.name AS Department , E.name AS Employee , salary AS Salary FROM Employee E INNER JOIN Department D ON E.departmentId = D.id WHERE (departmentId, salary) IN (SELECT departmentId, MAX(salary) FROM Employee GROUP BY departmentId) 해설 FROM Employee E.. 2024. 1. 30.
[프로그래머스 / MySQL] 입양 시각 구하기(1) 문제 💡 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 테이블 형태 풀이 SELECT HOUR(DATETIME) AS HOUR , COUNT (*) AS COUNT FROM ANIMAL_OUTS GROUP BY HOUR HAVING HOUR >= 9 AND HOUR = 9 AND HOUR = 9 AND HOUR(DATETIME) 2024. 1. 30.
[프로그래머스 / MySQL] 가격대 별 상품 개수 구하기 문제 💡 PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요. 테이블 형태 풀이 SELECT FLOOR(PRICE / 10000)*10000 AS PRICE_GROUP , COUNT(*) AS PRODUCTS FROM PRODUCT GROUP BY PRICE_GROUP ORDER BY PRICE_GROUP 해설 SELECT FLOOR(PRICE / 10000)*10000 AS PRICE_GROUP , COUNT(.. 2024. 1. 30.
[프로그래머스 / MySQL] 최댓값 구하기 문제 💡 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. 테이블 형태 풀이 SELECT MAX(DATETIME) AS 시간 FROM ANIMAL_INS 해설 SELECT MAX(DATETIME) AS 시간 FROM ANIMAL_INS 가장 늦게 들어왔다 = 시간 값이 가장 크다 → DATETIME 컬럼을 MAX 로 감싸기 2024. 1. 30.
[프로그래머스 / MySQL] 어린 동물 찾기 문제 💡 동물 보호소에 들어온 동물 중 젊은 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요. 테이블 형태 풀이 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION 'Aged' ORDER BY ANIMAL_ID 해설 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION 'Aged' ORDER BY ANIMAL_ID 젊은 동물 = Aged 가 아닌 동물 → 조건절 WHERE에 ≠와 같은 뜻인 비교연산자 사용(!=도 가능) MySQL 공식 문서 참고 이후 ORDER BY 로 동물 아이디 기준 오름차순 정렬 2024. 1. 30.
[프로그래머스 / MySQL] 동물의 아이디와 이름 문제 💡 동물 보호소에 들어온 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다. 테이블 형태 풀이 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID 해설 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID - ORDER BY 로 동물 아이디 기준 오름차순 정렬 2024. 1. 30.
[leetcode / MySQL] 181. Employees Earning More Than Their Managers 문제 💡 Write a solution to find the employees who earn more than their managers. Return the result table in any order. 테이블 형태 풀이 SELECT E1.name AS Employee FROM Employee AS E1 JOIN Employee AS E2 ON E1.managerId=E2.id WHERE E1.salary > E2.salary 해설 SELECT E1.name AS Employee FROM Employee AS E1 JOIN Employee AS E2 ON E1.managerId=E2.id WHERE E1.salary > E2.salary 상사보다 높은 급여를 받은 직원을 출력하는 문제다. manag.. 2024. 1. 29.
[leetcode / MySQL] 183. Customers Who Never Order 문제 💡 Write a solution to find all customers who never order anything. Return the result table in any order. 테이블 형태 풀이 SELECT name AS Customers FROM Customers AS C LEFT JOIN Orders AS O ON C.id = O.customerId WHERE O.id IS NULL ORDER BY C.id 해설 SELECT name AS Customers FROM Customers AS C LEFT JOIN Orders AS O ON C.id = O.customerId WHERE O.id IS NULL ORDER BY C.id Orders(O) 테이블에는 주문한 고객들의 custom.. 2024. 1. 29.