카테고리 없음

SQL - GROUP BY, ORDER BY

JIN_Coder 2023. 1. 8. 16:02

- GROUP BY

 

00별 00의 개수

SELECT 00, COUNT(*) FROM TABLE GROUP BY 00

 

00별 00의 합계, 평균, 최댓값, 최솟값

SELECR 00, SUM(00) FROM TABLE GROUP BY 00

 

00별 @@의 개수

SELECT 00, COUNT(@@) FROM TABLE GROUP BY 00

 

 

GROUP BY문을 작성하는 쉬운 방법

1. SELECT * FROM TABLE

2. SELECT * FROM TABLE GROUP BY 00

3. SELECT 00, COUNT(*) FROM TABLE GROUP BY 00

 

1. 기본문을 작성(조건문 넣어줘도 됨)

2. 00별로 묶는 것을 확인하고 GROUP BY를 작성

그룹으로 묶었는데 *를 쓰면 00으로 묶었을 때의 똑같은 애들의 개수, 평균, 합계 등을 알 수 없기 때문에

3. *을 00으로 묶었다고 알려주고, 그것의 개수, 합계, 평균을 보여주겠다를 COUNT(*)로 보여줌 (COUNT(00)으로 해도 똑같음)

 

# 기본문
SELECT name FROM users u GROUP BY name   
# 이름별 그룹(중복제거인셈)

# 조건문
SELECT name, COUNT(*) FROM users u WHERE email LIKE "%naver.com%" GROUP BY name   
# 네이버 이메일을 가진 이름별 갯수

# 00별 갯수
SELECT name, COUNT(*) FROM users u GROUP BY name   
# 이름별 갯수

# 00별 합계
SELECT name, SUM(likes) FROM users u GROUP BY name   
# 이름별 좋아요 합계

# 00별 평균
SELECT name, AVG(name) FROM users u GROUP BY name   # AVG(00)을 쓰면 소수점이 지저분함
SELECT name, ROUND(AVG(name),1) FROM users u GROUP BY name   # AVG(00)를 ROUND(AVG(00),1)로 감싸면 소숫점 1자리까지 표시

# 00별 최대값, 최소값
SELECT name, MAX(likes) FROM users u GROUP BY name
# 이름별 좋아요 최대값
SELECT name, MIN(likes) FROM users u GROUP BY name
# 이름별 좋아요 최솟값

 

 

 

- ORDER BY

 

오름차순 정렬(기본)

SELECT * FROM TABLE ORDER BY COLUMN (ASC)

 

내림차순 정렬

SELECT * FROM TABLE ORDER BY COLUMN DESC

 

# 기본문
SELECT * FROM PRODUCT ORDER BY price
SELECT * FROM PRODUCT ORDER BY price ASC   # ASC 생략 가능
# 제품을 가격으로 오름차순 정렬

# 내림차순
SELECT * FROM PRODUCT ORDER BY price DESC
# 제품을 가격으로 내림차순 정렬

# 조건문
SELECT * FROM PRODUCT WHERE brand = "GUCCI" ORDER BY price
# 브랜드가 구찌인 제품을 가격으로 오름차순 정렬

# GROUP BY랑 같이
SELECT category, price FROM PRODUCT WHERE brand = "GUCCI" GROUP BY category ORDER BY price
# 브랜드가 구찌인 제품을 카테고리별 가격으로 오름차순 정렬

 

 

- AS

 

별칭

SELECT 00 AS ## FROM TABLE

00 칼럼을 ##이라는 별칭으로 나타내줌