본문 바로가기
728x90

프로그래머스70

[MySQL] 프로그래머스 GROUP BY 14 년, 월, 성별별 상품 구매 회원 수 구하기 문제 USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요. 풀이 SELECT YEAR(SALES_DATE) YEAR , MONTH(SALES_DATE) MONTH , U.GENDER , COUNT(DISTINCT U.USER_ID) USERS -- 상품을 구매한 회원수를 집계(중복 제거) FROM USER_INFO U INNER JOIN ONLINE_SALE O ON U.USER_ID = O.USER_ID WHERE U.GENDER IS NOT NULL -- 성별 정보가 없는 경우 결과에서 제외 GROUP BY .. 2023. 10. 1.
[MySQL] 프로그래머스 GROUP BY 13 입양 시각 구하기(1) 문제 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 풀이 SELECT DATE_FORMAT(DATETIME, '%H') HOUR , COUNT(ANIMAL_ID) COUNT FROM ANIMAL_OUTS WHERE DATE_FORMAT(DATETIME, '%H') BETWEEN '09' AND '19' GROUP BY DATE_FORMAT(DATETIME, '%H') ORDER BY HOUR 처음에 '9시부터 19시 사이' 조건을 HAVING 절에 썼다. WHERE절과 HAVING절 헷갈린다. 2023. 10. 1.
[MySQL] 프로그래머스 GROUP BY 12 동명 동물 수 찾기 문제 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요. 풀이 SELECT NAME , COUNT(NAME) COUNT FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) > 1 ORDER BY NAME GROUP BY 이후 필터링은 HAVING 절에서 한다. 2023. 10. 1.
[MySQL] 프로그래머스 GROUP BY 11 고양이와 개는 몇 마리 있을까 문제 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요. 풀이 SELECT ANIMAL_TYPE, COUNT(ANIMAL_ID) COUNT FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE 2023. 10. 1.
[MySQL] 프로그래머스 GROUP BY 10 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 문제 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동차 ID와 AVAILABILITY 리스트를 출력하는 SQL문을 작성해주세요. 이때 반납 날짜가 2022년 10월 16일인 경우에도 '대여중'으로 표시해주시고 결과는 자동차 ID를 기준으로 내림차순 정렬해주세요. 풀이 SELECT CAR_ID , MAX(CASE WHEN '2022-10-16' BETWEEN START_DATE AND END_DATE THEN '대여중' ELSE '대여 가능' END) AS AVAILABILITY FROM CA.. 2023. 10. 1.
[MySQL] 프로그래머스 GROUP BY 09 자동차 종류별 특정 옵션이 포함된 자동차 수 구하기 문제 CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해주세요. 이때 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요. 풀이 SELECT CAR_TYPE , COUNT(CAR_ID) CARS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%시트%' GROUP BY CAR_TYPE ORDER BY CAR_TYPE 문자열 부분 일치 찾아야 하는 옵션이 다 '시트'로 끝나길래 '%시트'로 검색했는데 틀렸다. '%시트'로만 검색하면 시트 뒤에 다른 옵션이 나오는 경우는 검색이 안 되기 때.. 2023. 10. 1.
728x90