PROBLEM/PROGRAMMERS
[PRO] SQL 고득점 Kit - GROUP BY 1
Eunjng
2024. 3. 7. 10:30
MySQL 풀이
- 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
- 진료과별 총 예약 횟수 출력하기
- 성분으로 구분한 아이스크림 총 주문량
1. 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 | Lv.2
https://school.programmers.co.kr/learn/courses/30/lessons/151137
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT CAR_TYPE, COUNT(*) AS 'CARS'
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%통풍시트%' OR
OPTIONS LIKE '%열선시트%' OR
OPTIONS LIKE '%가죽시트%'
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE
2. 진료과별 총 예약 횟수 출력하기 | Lv.2
https://school.programmers.co.kr/learn/courses/30/lessons/132202
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT MCDP_CD AS '진료과코드', COUNT(*) AS '5월예약건수'
FROM APPOINTMENT
WHERE YEAR(APNT_YMD) = 2022
AND MONTH(APNT_YMD) = 5
GROUP BY MCDP_CD
ORDER BY 2, 1;
- ORDER BY의 경우 `ORDER BY COUNT(*), MCDP_CD`와 같이 컬럼으로 표현하거나, `ORDER BY 2, 1`과 같이 컬럼 순서로도 나타낼 수 있다.
3. 성분으로 구분한 아이스크림 총 주문량 | Lv.2
https://school.programmers.co.kr/learn/courses/30/lessons/133026
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
-- 1
SELECT I.INGREDIENT_TYPE, SUM(F.TOTAL_ORDER) AS 'TOTAL_ORDER'
FROM ICECREAM_INFO I, FIRST_HALF F
WHERE I.FLAVOR = F.FLAVOR
GROUP BY I.INGREDIENT_TYPE
ORDER BY TOTAL_ORDER
-- join 사용
SELECT I.INGREDIENT_TYPE, SUM(F.TOTAL_ORDER) AS 'TOTAL_ORDER'
FROM ICECREAM_INFO I
RIGHT JOIN FIRST_HALF F
ON I.FLAVOR = F.FLAVOR
GROUP BY I.INGREDIENT_TYPE
ORDER BY TOTAL_ORDER
- WHERE 혹은 JOIN을 통해 FLAVOR가 같은 것끼리 연결
- GROUP BY 후 SUM을 통해 주문량의 합계 계산