GROUP BY
데이터 조회하게 될 때 묶어서 조회하게 해주는 기능
SELECT * FROM customers
GROUP BY state
ORDER BY CustomerId;
HAVING
HAVING은 GROUP BY로 조회된 결과에 대한 필터
SELECT CustomerId, AVG(Total)
FROM invoices
GROUP BY CustomerId
HAVING AVG(Total) > 6.0
위 쿼리는 고객이 주문한 값의 평균을 구하고 평균이 6을 넘기는 결과만 조회하는 쿼리다
group by로 인한 결과에 대한 필터를 적용하는 것이 having이다
HAVING ? WHERE?
HAVING은 그룹화한 겨과에 대한 필터라면 , WHERE는 그룹화하기 전에 조회되는 레코드를 필터한다
WHERE, GROUP BY 결과에 대한 필터는 HAVING을 사용하면 된다
=== 집계 함수===
COUNT()
몇 개인지 값을 리턴
SELECT state, COUNT(*)
FROM customers
GROUP BY State;
SUM()
조회된 값들에 대한 합을 구해 리턴
SELECT InvoiceId, SUM(UnitPrice)
FROM invoice_items
GROUP BY IncoiceId;
invoice_items라는 테이블에서 InvoiceId필드를 기준으로 그룹화 하고 , UnitPrice 필드에 대한 값 합을 구하는 것 이다
AVG()
평균값 구해주는 함수
SELECT TrackId, AVG(UintPrice)
FROM invoice_items
GROUP BY TrackId;
TrackId의 평균 UnitPrice 구하기
MAX(), MIN()
최대 최소값 구하는 함수
SELECT CustomerId, MIN(Total)
FROM invoices
GROUP BY CustomerId
customerid로 그룹화를 한 후 고객의 최소값을 보여주는 쿼리
max로 바꾸면 고객이 지불한 최대 금액 명시할 수 있다
'데이터 분석 및 프로젝트' 카테고리의 다른 글
데이터베이스 연결 - GIT BASH, DBEAVER (0) | 2023.05.24 |
---|---|
SELECT 문 실행 순서 / CASE/ SUBQUERY/IN NOT IN /FROM (0) | 2023.05.23 |
아우디 중고차 가격 예측하기 - 머신러닝 (0) | 2023.05.10 |
N111a- 과제 (0) | 2023.03.16 |
section1 project- 비디오 게임 데이터 분석 (0) | 2023.03.13 |