EunJng

[PRO] SQL 고득점 Kit - GROUP BY 1 본문

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을 통해 주문량의 합계 계산

'PROBLEM > PROGRAMMERS' 카테고리의 다른 글

[PRO] SQL 고득점 Kit - GROUP BY 3  (2) 2024.03.12
[PRO] SQL 고득점 Kit - GROUP BY 2  (0) 2024.03.08
[PRO] SQL 고득점 Kit - IS NULL 1  (0) 2024.03.06
[PRO] SQL 고득점 Kit - SELECT 2  (0) 2024.03.03
[PRO] SQL 고득점 Kit - SELECT 1  (0) 2024.03.02