mysql 61

[MySQL] 프로그래머스 부서별 평균 연봉 조회하기

문제:부서별로 부서 ID, 영문 부서명, 평균 연봉을 조회- 평균연봉은 소수점 첫째 자리에서 반올림- 결과는 부서별 평균 연봉을 기준으로 내림차순 정렬 해결방법:1. 부서 테이블과 직원별 급여 테이블을 부서 코드를 기준으로 INNER JOIN2. GROUP BY 와 AVG() 로 부서별 평균 연봉 조회3. ROUND() 로 소수점 첫째 자리에서 반올림4. 부서별 평균 연봉으로 ORDER BY ~ DESC 예시코드:SELECT E.DEPT_ID, D.DEPT_NAME_EN, ROUND(AVG(SAL)) AVG_SALFROM HR_EMPLOYEES EINNER JOIN(SELECT DEPT_ID, DEPT_NAME_ENFROM HR_DEPARTMENT) DON E.DEPT_ID = D.DEPT_IDGROUP..

[SQL] 연습 2024.10.26

[MySQL] 프로그래머스 물고기 종류별 잡은 수 구하기

문제:FISH_NAME_INFO에서 물고기의 종류 별 물고기의 이름과 잡은 수를 출력- 물고기의 이름 컬럼명은 FISH_NAME, 잡은 수 컬럼명은 FISH_COUNT- 결과는 잡은 수 기준으로 내림차순 정렬 해결방법:1. FISH_INFO 테이블과 FISH_NAME_INFO 테이블을 INNER JOIN2. FISH_NAME 컬럼을 기준으로 GROUP BY, COUNT() 로 종류별 레코드 수 구하기3. ORDER BY 로 내림차순 정렬 예시 코드:SELECT COUNT(*) FISH_COUNT, N.FISH_NAMEFROM FISH_INFO IINNER JOIN FISH_NAME_INFO NON I.FISH_TYPE = N.FISH_TYPEGROUP BY N.FISH_NAMEORDER BY FISH_..

[SQL] 연습 2024.10.19

[MySQL] 프로그래머스 즐겨찾기가 가장 많은 식당 정보 조회하기

문제:REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회- 결과는 음식 종류를 기준으로 내림차순 정렬 해결 방법:1. GROUP BY, MAX() 를 사용해서 음식 종류별 즐겨찾기수의 최대값을 조회2. INNER JOIN 으로 REST_INFO 와 앞선 테이블을 JOIN 하고 음식종류와 즐겨찾기수가 같은 식당을 조회 예시 코드:SELECT RI.FOOD_TYPE, REST_ID, REST_NAME, FAVORITESFROM REST_INFO AS RIINNER JOIN (SELECT FOOD_TYPE, MAX(FAVORITES) TOP_FAV FROM REST_INFO GROUP BY FOOD_TYPE) AS TOPO..

[SQL] 연습 2024.10.16

[MySQL] 프로그래머스 가격대 별 상품 개수 구하기

문제:PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성- 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시- 결과는 가격대를 기준으로 오름차순 정렬 해결방법:1. 금액을 10000원으로 나눈 값의 몫만 사용하여 가격대를 생성2. COUNT() 와 GROUP BY 로 가격대별 레코드 수 카운트 예시 답안:SELECT ((PRICE DIV 10000) * 10000) PRICE_GROUP, COUNT(*) PRODUCTSFROM PRODUCTGROUP BY PRICE_GROUPORDER BY PRICE_GROUP ASC;

[SQL] 연습 2024.10.12

[MySQL] 프로그래머스 5월 식품들의 총 매출 조회하기

문제:생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회- 총매출을 기준으로 내림차순 정렬, 식품 ID를 기준으로 오름차순 정렬 해결방법:1. WHERE 조건절에 YEAR(), MONTH() 함수로 2022년 5월에 대한 조건을 설정2. ORDER 테이블과 PRODUCT 테이블을 PRODUCT_ID 를 기준으로 INNER JOIN3. 조인한 테이블에서 PRICE * AMOUNT 를 하면 개별 주문당 매출이 나오는데, GROUP BY 로 각 식품ID 별 총 매출 계산4. ORDER BY 에서 정렬 설정 예시 코드:SELECT FO.PRODUCT_ID, FP.PRODUCT_NAME, SUM(FO.AMOUNT * FP.PRICE) TOTAL_SALESFROM FOOD_ORDER FOI..

[SQL] 연습 2024.10.10

[MySQL] 프로그래머스 식품분류별 가장 비싼 식품 정보 조회하기

문제: 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회 - 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력 - 결과는 식품 가격을 기준으로 내림차순 정렬  해결방법:1. 카테고리별 가장 비싼 가격을 출력한 테이블과 기존 식품 정보 테이블을 INNER JOIN2. INNER JOIN 할 때, 카테고리와 가격을 기준으로 조인3. WHERE 절에 카테고리에 대한 조건 설정4. ORDER BY 로 식품 가격 기준 내림차순 예시코드:SELECT T1.CATEGORY, T2.MAX_PRICE, T1.PRODUCT_NAMEFROM FOOD_PRODUCT T1INNER JOIN (SELECT CATEGORY, MAX(PRICE) MAX_PRICE FROM FOOD_PRODU..

[SQL] 연습 2024.10.06

[MySQL] 프로그래머스 조건에 맞는 사용자와 총 거래금액 조회하기

문제: 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회 - 결과는 총거래금액을 기준으로 오름차순 정렬  해결방법:1. 거래 게시판 테이블과 유저 테이블을 유저ID 로 INNER JOIN2. 완료된 중고 거래만 조회하기 위해 WHERE 절에서 조건 설정3. 회원ID 별 중고거래 금액을 조회하기 위해서 GROUP BY 회원ID 로 금액 SUM4. 완료 거래 총금액에 대해서 70만원 이상 조건 설정을 위해 HAVING 사용5. ORDER BY 로 오름차순 정렬 예시 코드:SELECT B.WRITER_ID, U.NICKNAME, SUM(B.PRICE) TOTAL_SALESFROM USED_GOODS_BOARD AS BINNER JOIN USED_GOODS_USER ..

[SQL] 연습 2024.10.05

[MySQL] 프로그래머스 대여 기록이 존재하는 자동차 리스트 구하기

문제:자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력- 자동차 ID 리스트는 중복 없이 출력- 자동차 ID를 기준으로 내림차순 정렬 해결 방법:1. 자동차 테이블과 대여 기록 테이블을 CAR_ID 로 INNER JOIN2. WHERE 절에 자동차 종류가 '세단' 조건 및 10월 조건(MONTH 함수 사용) 설정3. 중복없는 리스트 출력을 위해 DISTINCT 사용4. ORDER BY 로 내림차순 정렬 예시 코드:SELECT DISTINCT C.CAR_IDFROM CAR_RENTAL_COMPANY_CAR AS CINNER JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY AS HON C.CAR_ID = H.CAR_IDWHERE C.CA..

[SQL] 연습 2024.10.04

[MySQL] 프로그래머스 성분으로 구분한 아이스크림 총 주문량

문제:각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총주문량을 총주문량이 작은 순서대로 조회- 총주문량을 나타내는 컬럼명은 TOTAL_ORDER로 지정 해결방법:1. 성분타입이 있는 테이블과 주문량 테이블을 INNER JOIN2. GROUP BY 와 SUM 으로 성분 타입별 총 주문량 계산 예시 코드:SELECT I.INGREDIENT_TYPE, SUM(F.TOTAL_ORDER) TOTAL_ORDER -- F.SHIPMENT_ID, F.FLAVOR, F.TOTAL_ORDER, I.INGREDIENT_TYPEFROM FIRST_HALF AS FINNER JOIN ICECREAM_INFO AS ION F.FLAVOR = I.FLAVORGROUP BY I.INGREDIENT_TYPEORDER BY..

[SQL] 연습 2024.09.28

[MySQL] 프로그래머스 조건별로 분류하려 주문상태 출력하기

문제:FOOD_ORDER 테이블에서 2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회- 출고여부: 2022년 5월 1일까지 출고완료, 이 후 날짜는 출고 대기, 미정이면 출고미정- 결과는 주문 ID를 기준으로 오름차순 정렬 해결방법:1. SELECT 에서 출고여부를 CASE 문으로 설정2. 날짜 형식에 대한 포맷을 맞추기3. ORDER BY 로 정렬 예시코드:SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, "%Y-%m-%d") AS OUT_DATE , (CASE WHEN OUT_DATE "2022-05-01" THEN "출고대기" ELSE "출고미정" END) AS 출고여부FROM FOO..

[SQL] 연습 2024.09.22

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

문제:PRODUCT 테이블과 OFFLINE_SALE 테이블에서 상품코드 별 매출액(판매가 * 판매량) 합계를 출력- 결과는 매출액을 기준으로 내림차순 정렬, 매출액이 같다면 상품코드를 기준으로 오름차순 정렬 해결방법:1. PRODUCT 테이블과 OFFLINE_SALE 테이블은 PRODUCT_ID 로 INNER JOIN2. SALES_AMOUNT 랑 PRICE 를 곱한 값에 대해 GROUP BY 로 상품코드별 SUM()3. ORDER BY 로 정렬 예시코드:SELECT P.PRODUCT_CODE, SUM(S.SALES_AMOUNT * P.PRICE) AS SALESFROM OFFLINE_SALE AS SINNER JOIN PRODUCT AS PON S.PRODUCT_ID = P.PRODUCT_IDGROUP..

[SQL] 연습 2024.09.21

[MySQL] 프로그래머스 카테고리별 도서 판매량 집계하기

문제:카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력- 2022년 1월의 카테고리 별 도서 판매량을 합산- 결과는 카테고리명을 기준으로 오름차순 정렬 해결방법:1. 도서 테이블과 판매 테이블을 INNER JOIN 으로 결합2. 카테고리 별 도서 판매량은 GROUP BY 와 SUM() 사용3. 2022년 1월에 대한 기간 설정은 WHERE 에서 BETWEEN 으로 설정 예시 코드:SELECT B.CATEGORY, SUM(BS.SALES) TOTAL_SALESINNER JOIN BOOK AS BON BS.BOOK_ID = B.BOOK_IDWHERE DATE(BS.SALES_DATE) BETWEEN '2022-01-01' AND '2022-01-31'GROUP BY B.CATEGO..

[SQL] 연습 2024.09.20

[MySQL] 프로그래머스 조건에 맞는 도서와 저자 리스트 출력

문제:'경제' 카테고리에 속하는 도서들의 도서 ID(BOOK_ID), 저자명(AUTHOR_NAME), 출판일(PUBLISHED_DATE) 리스트를 출력 해결방법:1. BOOK 과 AUTHOR 테이블은 AUTHOR_ID 로 JOIN2. 출판일은 DATE_FORMAT() 으로 변환 후 출력3. WHERE 절에서 카테고리 '결제' 로 설정 예시 코드:SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATEFROM BOOKINNER JOIN AUTHORON BOOK.AUTHOR_ID = AUTHOR.AUTHOR_IDWHERE CATEGORY = '경제'ORDER BY PUBLISHED_DATE;

[SQL] 연습 2024.09.15

[MySQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수

문제: '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력 - 자동차 수에 대한 컬럼명은 CARS로 지정- 자동차 종류를 기준으로 오름차순 정렬  해결방법:1. 여러가지 옵션을 WHERE 절에서 REGEXP 로 설정2. 종류별 몇 대인지는 GROUP BY 사용3. ORDER BY 오름차순 정렬 예시 코드:SELECT CAR_TYPE, COUNT(*) CARSFROM CAR_RENTAL_COMPANY_CARWHERE options REGEXP '통풍시트|열선시트|가죽시트'GROUP BY car_typeORDER BY CAR_TYPE;

[SQL] 연습 2024.09.14