엑셀에서 필터를 통해 보고싶은 부분만 확인하는거와 오름차순, 내림차순으로 정렬하는거를 배운거같습니다.
MySQL에서 유형별로 갯수를 가져오고 싶은데, COUNT 함수는 단순 데이터를 조회하여 전체 갯수만 가져옵니다.
때문에 유형별로 갯수를 알고 싶을 때는 컬럼에 데이터를 그룹화 할 수 있는 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 앞에 그룹화한필드명을 붙여줌으로써 그룹화하여 갯수를 센게 무엇인지 알게해준다.
select 범주가 담긴 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
select 범주가 담긴 필드명, max(최댓값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
select 범주가 담긴 필드명, avg(평균값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
AVG 평균값 명령어는 기본적으로 소수점을 표시하기에 소수점을 조절 및 반올림을 하고 싶을 경우
select 범주가 담긴 필드명, round(avg(평균값을 알고 싶은 필드명),소수점자리표시) from 테이블명
group by 범주가 담긴 필드명;
소수점 1자리만 반올림하여 표시
범주의 합계를 알고 싶은경우 사용한다
SELECT week, SUM(likes) from checkins
group by week
테이블을 정렬하여 보고 싶을때 사용하는 명령어이다.
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