본문 바로가기
728x90

IT/SQL73

[MySQL] 프로그래머스 SELECT 13 오프라인/온라인 판매 데이터 통합하기 문제 ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성해주세요. OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요. 풀이 Level 4 답게 정말 까다로운 문제였다. 이건 문제 하나 하나 뜯어봐야겠다. ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 테이블 2개 나와서 JOIN 했는데 이 문제는 JOIN이 아닌 UNION을 사용해서 푸는 문제다. JOIN과 .. 2023. 9. 27.
[MySQL] 프로그래머스 SELECT 12 재구매가 일어난 상품과 회원 리스트 구하기 문제 ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요. 풀이 SELECT USER_ID , PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID , PRODUCT_ID HAVING COUNT(*) >= 2 ORDER BY USER_ID , PRODUCT_ID DESC 동일한 회원이 동일한 상품을 재구매한 데이터를 어떻게 추출할지 생각하는 게 핵심이었다. 동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재하기 때문에 USER_.. 2023. 9. 27.
[MySQL] 프로그래머스 SELECT 11 모든 레코드 조회하기 문제 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. 풀이 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID 2023. 9. 27.
[MySQL] 프로그래머스 SELECT 10 흉부외과 또는 일반외과 의사 목록 출력하기 문제 DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요. 풀이 SELECT DR_NAME , DR_ID , MCDP_CD , DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') HIRE_YMD FROM DOCTOR WHERE MCDP_CD IN ('CS', 'GS') ORDER BY HIRE_YMD DESC , DR_NAME 2023. 9. 27.
[MySQL] 프로그래머스 SELECT 09 12세 이하인 여자 환자 목록 출력하기 문제 PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요. 풀이 SELECT PT_NAME , PT_NO , GEND_CD , AGE , IFNULL(TLNO, 'NONE') TLNO FROM PATIENT WHERE AGE 2023. 9. 27.
[MySQL] 프로그래머스 SELECT 08 평균 일일 대여 요금 구하기 문제 CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요. 풀이 SELECT ROUND(AVG(DAILY_FEE),0) AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR GROUP BY CAR_TYPE HAVING CAR_TYPE = 'SUV' COUNT, SUM, AVG, MAX, MIN과 같은 집계 함수를 사용하려면 반드시 GROUP BY를 해야 할까? 부서별 급여 총액을 계산하기 위해 GROUP BY를 진행했다. 다른 집계 함수도 GROUP BY를 사용하지 않고 쓸 수 있을까.. 2023. 9. 27.
728x90