728x90
반응형
SMALL
📌 문제 정보
- 출처: 문제 링크
- 난이도: ⭐
- 문제 유형: 집계 함수
- 사용 언어: SQL
🔍 문제 설명
다음은 어느 의류 쇼핑몰에서 판매 중인 상품들의 정보를 담은 PRODUCT 테이블입니다. PRODUCT 테이블은 아래와 같은 구조로 되어있으며, PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.
상품 별로 중복되지 않는 8자리 상품코드 값을 가지며, 앞 2자리는 카테고리 코드를 의미합니다.
PRODUCT 테이블에서 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 MAX_PRICE로 지정해주세요.
💡 풀이 노트
💡 그룹 함수란?
다수의 행을 입력으로 받아 하나의 요약 값을 반환하는 함수
일반적으로 `GROUP BY` 절과 함께 사용됨
NULL 값은 연산에서 제외
1. 대표적인 그룹 함수
| 함수명 | 설명 | 사용 가능 데이터형 | NULL 처리 |
| `COUNT` | 행의 수 세기 | 문자, 숫자, 날짜 | 제외 가능 |
| `SUM` | 합계 | 숫자만 | 제외 |
| `AVG` | 평균 | 숫자만 | 제외 |
| `MIN` | 최소값 | 숫자, 날짜, 문자 | 제외 |
| `MAX` | 최대값 | 숫자, 날짜, 문자 | 제외 |
| `VARIANCE` | 분산 | 숫자만 | 제외 |
| `STDDEV` | 표준편차 | 숫자만 | 제외 |
✅ 주의: 각 그룹 함수는 하나의 컬럼만 인자로 받는다
2. 집계 함수 예시
SELECT COUNT(*) -- 전체 행 수
SELECT COUNT(COLUMN) -- NULL 제외한 행 수
SELECT SUM(PRICE)
SELECT AVG(SCORE)
SELECT MIN(DATE)
SELECT MAX(NAME)
🚀 코드 SQL
SELECT MAX(PRICE) AS MAX_PRICE
FROM PRODUCT;
🖥 실행 결과
출력
MAX_PRICE
85000
🔄 (추가 정보)그룹핑 함수
1. `GROUPING SETS`
- 개별 컬럼 기준의 그룹 결과 합집합 출력
SELECT DEPT, JOB, SUM(SAL)
FROM EMP
GROUP BY GROUPING SETS(DEPT, JOB, ());
- ()은 전체 집계(총합)
2. `ROLLUP`
- 상위 → 하위 → 전체 요약까지 계층적으로 집계
SELECT DEPT, JOB, SUM(SAL)
FROM EMP
GROUP BY ROLLUP(DEPT, JOB);
- 순서 중요! (`DEPT` > `JOB`)
3. `CUBE`
- 모든 가능한 그룹 조합 + 전체 총합 출력
SELECT DEPT, JOB, SUM(SAL)
FROM EMP
GROUP BY CUBE(DEPT, JOB);
- 순서 중요하지 않음
✅ GROUPING SETS(DEPT, JOB, (DEPT, JOB), ()) ≡ CUBE(DEPT, JOB)
📌 깃허브 코드 저장소: https://github.com/glorypang/CodingTest
728x90
반응형
LIST