반응형
1. GROUP BY
GROUP BY
는 MySQL에서 그룹화하여 데이터를 조회할 때 사용합니다. GROUP BY
에 특정 컬럼 이름을 지정해주면 그 컬럼의 unique한 값에 따라 데이터를 그룹화하고, 중복된 열은 제거됩니다. GROUP BY
뒤에 그룹핑의 기준이 되는 하나 이상의 컬럼명을 쓰면 됩니다. 일반적으로 GROUP BY는 집계 함수와 같이 쓰입니다. 왜냐하면 데이터를 그룹별로 나누면 그룹별로 집계 데이터를 도출할 수 있기 때문입니다.
2. 집계 함수(aggregate function)
COUNT(*)
: 전체 row의 개수(전체 행 수)를 반환COUNT([컬럼명])
: 컬럼값이 null인 row를 제외한 row의 개수를 반환COUNT(DISTINCT [컬럼명])
: 컬럼값이 null이 아닌 row에서 중복을 제거한 개수를 반환SUM([컬럼명])
: 컬럼값들의 합계를 반환AVG([컬럼명])
: 컬럼값들의 평균을 반환MIN([컬럼명])
: 컬럼값들의 최솟값을 반환MAX([컬럼명])
: 컬럼값들의 최댓값을 반환
3. HAVING
HAVING
절은 GROUP BY
절에서의 조건절입니다. 즉, 데이터를 그룹핑한 후, 특정 그룹을 조건에 따라 골라낼 때 사용합니다.
HAVING
절은 논리적으로 GROUP BY
절 이후에 수행되므로 그룹핑 후에 가능한 집계 함수로 조건을 부여할 수 있습니다. 예를 들어 2022년 7월 한 달 동안의 판매된 개수가 1000개 이상인 상품만 출력하는 SQL문은 다음과 같이 작성할 수 있습니다.
SELECT PRODUCT_CODE,
COUNT(ORDER_CNT) AS ORDER_CNT
FROM ORDER_PRODUCT
WHERE ORDER_DATE BETWWEN '20220701' AND '20220731'
GROUP BY PRODUCT_CODE
HAVING COUNT(ORDER_CNT) >= 1000;
반응형
'MySQL' 카테고리의 다른 글
[프로그래머스 | MySQL] 과일로 만든 아이스크림 고르기 (0) | 2023.01.31 |
---|---|
[프로그래머스 | MySQL] 조건에 맞는 도서 리스트 출력하기 (0) | 2023.01.31 |
[프로그래머스 | MySQL] 평균 일일 대여 요금 구하기 (0) | 2023.01.31 |
[프로그래머스 | MySQL] 진료과별 총 예약 횟수 출력하기 (GROUP BY) (1) | 2023.01.31 |
[프로그래머스 | MySQL] 자동차 대여 기록에서 장기/단기 대여 구분하기 (4) | 2023.01.23 |
댓글