SQL - 2

황태규·2023년 3월 23일
0

SQL

목록 보기
2/2
post-thumbnail

개발일지

엑셀에서 필터를 통해 보고싶은 부분만 확인하는거와 오름차순, 내림차순으로 정렬하는거를 배운거같습니다.

GROUP(그룹화)가 필요한 이유

MySQL에서 유형별로 갯수를 가져오고 싶은데, COUNT 함수는 단순 데이터를 조회하여 전체 갯수만 가져옵니다.

때문에 유형별로 갯수를 알고 싶을 때는 컬럼에 데이터를 그룹화 할 수 있는 GROUP BY를 사용하는 것입니다.

GROUP BY - 그룹화

동일한 범주의 데이터를 묶어준다.
기본 구조

SELECT 범주가 담긴 필드명, count(*) FROM  @테이블명
WHERE  필드명 LIKE '%필드객체명' 
# %를 사용하여 앞에 단어에 무엇이 오던 상관없다
GROUP by 범주가 담긴 필드명

예시1

select name, count(*) from users
group by name;

from → group by → select 순으로 실행된다
1. from users: users 테이블에서 데이터를 불러옵니다
2. group by name: name이라는 필드에서 동일한 값을 갖는 데이터를 하나로 합쳐줍니다
3. select name, count(): 이름과 count()를 출력해 주는데, 여기서 count(*)는 group by로 합쳐진 데이터의 개수를 세어주는 것입니다

예시2

select 앞에 그룹화한필드명을 붙여줌으로써 그룹화하여 갯수를 센게 무엇인지 알게해준다.

MIN, MAX, AVG

Min - 최소값

select 범주가 담긴 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;

Max - 최대값

select 범주가 담긴 필드명, max(최댓값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;

AVG - 평균값

select 범주가 담긴 필드명, avg(평균값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;

AVG 평균값 명령어는 기본적으로 소수점을 표시하기에 소수점을 조절 및 반올림을 하고 싶을 경우

select 범주가 담긴 필드명, round(avg(평균값을 알고 싶은 필드명),소수점자리표시) from 테이블명
group by 범주가 담긴 필드명;


소수점 1자리만 반올림하여 표시

*SUM - 합계

범주의 합계를 알고 싶은경우 사용한다

SELECT week, SUM(likes) from checkins
group by week 

ORDER BY - 정렬

테이블을 정렬하여 보고 싶을때 사용하는 명령어이다.

SELECT 범주가 담긴 필드명, count(*) FROM  @테이블명
WHERE  필드명 LIKE '%필드객체명' 
GROUP by 범주가 담긴 필드명
order by count(*);

예시

select name, count(*) from users
group by name
order by count(*);

ORDER BY절은 오름차순(ASC) 명령어가 기본값이다
따라서 내림차순(DESC)으로 바꾸고 싶다면 desc 명령어를 추가로 달면된다.

예시

select name, count(*) from users
group by name
order by count(*) desc

profile
응애

0개의 댓글