제로하우스

[TIL][DB] SQL 집합연산 본문

DB&SQL

[TIL][DB] SQL 집합연산

송제로투 2022. 6. 2. 22:54

Overview

레코드를 조회하고 분류한 뒤, 특정 작업을 하는 연산이다.

 

GROUP BY

지정된 기준에 따라 행 세트를 그룹으로 결합하며, 데이터를 요약하는 상황에 주로 사용한다. SELECT 문의 옵션 절(optional clause)이다.

SELECT <*columns> FROM <table> GROUP BY <*columns>;

예를 들어, users에서 각 성(last_name)씨가 몇 명씩 있는지 조회하는 경우 아래와 같이 사용할 수 있다.

SELECT last_name, COUNT(*) FROM users GROUP BY last_name;

 

HAVING

GROUP BY로 조회된 결과를 필터링할 수 있다.

SELECT CustomerId, AVG(Total) FROM invoices GROUP BY CustomerID HAVING AVG(Total) > 6.00;

 

COUNT

다음의 표현식은 레코드의 개수를 반환한다.

SELECT COUNT(<column>) FROM <table>

column을 모두 지정할 때는 *을 사용하면 된다. (정확하게 count를 하는 경우에는 id 값을 column에 넣는 것이 좋은 것 같다~)

 

SUM()

SUM 함수는 레코드의 합을 리턴하며, 기본적으로 숫자(INTEGER)일 때만 사용할 수 있다.

SELECT InvoiceId, SUM(UnitPrice) FROM invoice_items GROUP BY InvoiceId;

 

AVG()

AVG 함수는 레코드의 평균값을 계산하는 함수이며, 기본적으로 숫자(INTEGER)일 때만 사용할 수 있다.

SELECT AVG(age) from users WHERE age>=30;

 

MAX(), MIN()

MAX 함수와 MIN 함수는 각각 레코드의 최대값과 최소값을 리턴하며, 기본적으로 숫자(INTEGER)일 때만 사용할 수 있다.

SELECT first_name, MAX(balance) FROM users;

 

Copyright © 2022 Song_Artish

'DB&SQL' 카테고리의 다른 글

[TIL][DB] SQL SubQuery  (0) 2022.06.08
[TIL][DB] SQL 조건문: CASE  (0) 2022.06.02
[TIL][DB] 25 SQL Statements  (0) 2022.06.02
[TIL][DB] 24 SQL CRUD  (0) 2022.06.02
[TIL][DB] 23 SQL 데이터베이스  (0) 2022.06.02
Comments