[DB, SQL] 조건에 따라 그룹으로 묶기

JUNHO YEOM·2022년 11월 2일
0

DB, SQL

목록 보기
4/21
post-thumbnail

그룹으로 묶기

GROUP BY

GROUP BY: 테이블의 특정 컬럼을 기준으로 묶음

SELECT Country FROM Customers
GROUP BY Country;
# Country가 값은 값들끼리 묶여서 값이 나옴

해당되는 조건의 Data 개수 구하기

SELECT
  COUNT(*), ORDERDATE
FROM Orders
GROUP BY OrderDate:
# 조건에 해당하는 Column의 숫자

WITH ROLLUP

WITH ROLLUP: 전체의 집계값

SELECT
  Country, COUNT(*)
FROM Suppliers
GROUP BY Country;
# 조건에 부합하는 값의 전체 합계를 나타내줍니다.
# ORDER BY와는 사용할 수 없습니다.

그룹한 데이터의 필터링

HAVING

HAVING: 그룹화된 데이터 필터링

SELECT
  Country, COUNT(*) AS Count
FROM Suppliers
GROUP BY Country
HAVING Count >= 3;
# 그룹화된 값들 중 Count가 3이상인 값들만 출력

WHERE은 그룹하기 전 데이터를 필터링 하고,
HAVING은 그룹화 한 이후의 데이터를 필터링 합니다.


DISTINCT

DISTINCT: 중복된 값 제거

  • 집계함수를 사용하지 않음
  • 정렬하지 않아서 속도가 빠름
SELECT
  Country,
  COUNT(DISTINCT City)
FROM Customers
GROUP BY Country;
# 그룹으로 묶은 Customers 테이블에서 City 값이 같은 값은 제거하고 출력
# ORDER BY와 DISTINCT 함께 사용하기

0개의 댓글