sql 연습 44

[MySQL] 프로그래머스 - 상품 별 오프라인 매출 구하기

& 테이블 구조 SELECT P.PRODUCT_CODE, SUM(OS.SALES_AMOUNT) * P.PRICE AS SALES FROM PRODUCT AS P INNER JOIN OFFLINE_SALE AS OS ON P.PRODUCT_ID = OS.PRODUCT_ID GROUP BY P.PRODUCT_CODE ORDER BY SALES DESC, PRODUCT_CODE ASC; 판매가 와 판매량을 통해 매출액을 구해야 하는 문제. 우선 두 테이블에 공통으로 있는 PRODUCT_ID 로 내부 조인을 해준다. 다음 각 PRODUCT_CODE 로 그룹화 하여 코드별 매출액을 구하는 SELECT 절을 계산한다. 출처 : 프로그래머스 - 상품 별 오프라인 매출 구하기

IT/SQL 2024.01.18

[MysQL] 프로그래머스 - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

테이블구조 SELECT CAR_TYPE, count(CAR_ID) AS CARS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%통풍시트%' or OPTIONS LIKE '%열선시트%' or OPTIONS LIKE '%가죽시트%' GROUP BY CAR_TYPE ORDER BY CAR_TYPE ASC; GROUP BY 절을 활용한 문제이다. GROUP 절을 활용할때 어떤 값을 기준으로 해야하는지 잘 파악하는 부분이 중요한것 같다. 또한 옵션 중 시트가 포함된 부분의 조건이 있기에 '%xx시트%' 를 활용하여 해당 단어가 들어가는 차의 행만 필터링 하였다. 출처 : 프로그래머스 - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

IT/SQL 2024.01.17

[MySQL] 프로그래머스 - 입양 시각 구하기(1)

테이블 구조 SELECT HOUR(DATETIME) AS HOUR, count(DATETIME) AS COUNT FROM ANIMAL_OUTS GROUP BY HOUR(DATETIME) HAVING HOUR BETWEEN 9 AND 19 ORDER BY HOUR ASC; 처음에는 DATE_FORMAT (DATETIME, '%h') 이렇게 시간을 포맷을 바꾸어 사용하니 9시가 09 로 나타나기도 했고, 정확한 값이 나오지 않아 찾아보니 HOUR() 함수가 존재 하였다!! 그래서 HOUR(DATETIME) 으로 GROUP BY 절, SELECT 절 등에 활용하니 문제가 쉽게 풀려졌다. *HOUR () : 괄호 내 시간의 시각을 알려준다. HOUR와 비슷한 minute, second, year, week 등이..

IT/SQL 2024.01.17

[MySQL] 프로그래머스 - 중성화 여부 파악하기

테이블 구조 SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE 'Neutered%' OR SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O' ELSE 'X' END AS 중성화 FROM ANIMAL_INS ORDER BY ANIMAL_ID; 파이썬으로 치면 IF - elif - else문에 해당하는 case - when - else 문이다. CASE로 조건절을 시작하고, WHEN (어떤 조건에 해당하면) THEN (이렇게 처리해라~) ELSE (아니면 이렇게 처리해라) END 이렇게 구조가 나뉜다. 출처 : 프로그래머스 - 중성화 여부 파악하기

IT/SQL 2024.01.17

[MySQL] 프로그래머스 - 카테고리 별 상품 개수 구하기

테이블 구조 SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY, COUNT(*) AS PRODUCTS FROM PRODUCT GROUP BY LEFT(PRODUCT_CODE, 2) ORDER BY LEFT(PRODUCT_CODE, 2) ASC; LEFT 함수를 이용하여 PRODUCT_CODE의 앞 2자리만 조건을 자르고, 그 값들을 기준으로 GROUP BY 절을 이용한다. 그 후 그 값들을 PRODUCTS 컬럼에 카운트 하여 결과셋에 나타나게 표현하였다. 출처 : 프로그래머스 - 카테고리 별 상품 개수 구하기

IT/SQL 2024.01.17

[MySQL] 프로그래머스 - 가격이 제일 비싼 식품의 정보 출력하기

테이블 구조 SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE FROM FOOD_PRODUCT ORDER BY PRICE DESC LIMIT 1; LIMIT 구문을 활용하여 가격순으로 있는 제품 리스트 중에서 최대값을 구합니다. (max(price)로 해보려다가 헤매서 당황했으므로 그렇지 않도록 조심!) 출처 : 프로그래머스 - 가격이 제일 비싼 식품의 정보 출력하기

IT/SQL 2024.01.17

[MySQL] 프로그래머스 - 동명 동물 수 찾기

테이블 구조 SELECT NAME, COUNT(NAME) AS count FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME HAVING COUNT(NAME) >= 2 ORDER BY NAME; GROUP BY 절을 활용 하는 문제이다. 특정 컬럼에 대한 집계성 데이터를 활용할때 사용한다. 문제에서 요구하는 중복이름을 위해 GROUP BY NAME을 기입하고, 그 값에 대한 카운트 값을 SELECT 절에 추가한다. 또한 GROUP BY 절에 대한 조건절로 HAVING 절을 사용하였다. HAVING절을 GROUP BY 절에 대한 조건절, WHERE을 SELECT 절에 대한 조건절로 구분하여 해결하였다. 출처 : 프로그래머스 - 동명 동물 수 찾기

IT/SQL 2024.01.17

[MySQL] 프로그래머스 - 조건에 부합하는 중고거래 댓글 조회하기

테이블 & 테이블 구조 SELECT UGB.TITLE, UGB.BOARD_ID, UGR.REPLY_ID, UGR.WRITER_ID, UGR.CONTENTS, DATE_FORMAT(UGR.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE FROM USED_GOODS_BOARD AS UGB JOIN USED_GOODS_REPLY AS UGR ON UGB.BOARD_ID = UGR.BOARD_ID WHERE UGB.CREATED_DATE LIKE '2022-10%' # AND UGR.CREATED_DATE LIKE '2022-10%' ORDER BY UGR.CREATED_DATE ASC, UGB.TITLE ASC; 우선 결과셋에서 요구하는 컬럼명들을 적었다. 그 후에 두 테이블의 공통..

IT/SQL 2024.01.17

[MySQL] 프로그래머스 - 과일로 만든 아이스크림 고르기

테이블 & 테이블 구조 SELECT fh.FLAVOR FROM FIRST_HALF AS fh JOIN ICECREAM_INFO AS ii ON fh.FLAVOR = ii.FLAVOR WHERE INGREDIENT_TYPE = 'fruit_based' AND TOTAL_ORDER > 3000 ORDER BY TOTAL_ORDER DESC; FLAVOR 컬럼이 두 테이블을 이어주는 기본키이자 외래키이므로, FLAVOR를 이용하여 조인 한다. (내부조인) WHERE 절에서 총 주문량과 주 성분에 대한 조건을 달아주고 ORDER BY 절에 값의 순서를 정해 준다. 출처 : 프로그래머스 - 과일로 만든 아이스크림 고르기

IT/SQL 2024.01.17

[MySQL] 프로그래머스 - 경기도에 위치한 식품창고 목록 출력하기

테이블 구조 SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') AS FREEZER_YN FROM FOOD_WAREHOUSE WHERE ADDRESS LIKE '경기도%' ORDER BY WAREHOUSE_ID ASC; 우선 WHERE절에서 경기도에 위치한 공장들만 필터링 후, 해당 값들 중 냉동 시설 여부가 NULL 인것들을 찾기 위해 SELECT 절에 기본 FREEZER_YN 컬럼을 IFNULL() 함수를 이용하여 NULL값들을 처리해주었다. * IFNULL 함수 : ( NULL값이 있는 컬럼, NULL값을 어떤 값으로 처리할지 ) 출처 : 프로그래머스 - 경기도에 위치한 식품창고 목록 출력하기

IT/SQL 2024.01.16