엑셀보다 쉬운 SQL 2주차: Group by, Order by

Jiumn·2022년 11월 8일
0
post-custom-banner

Q. SQL로 통계(최대, 최소, 평균, 개수)를 내고 싶을 때 어떻게 해야 할까?
A. Group by절을 사용해서 Order by로 정렬하자.


Group by

Group by: 동일한 범주의 데이터를 묶어주는 절

select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명
group by 범주별로 세어주고 싶은 필드명;
// 성씨별 회원수 구하기

// 실행 순서: from -> group by -> select
1. from users: users 테이블에서 데이터를 불러오기
2. group by name: name이라는 필드에서 동일한 값을 갖는 데이터별로 묶어주기
3. select name, count(*): 이름과 count(*)를 출력해 주는데, 여기서 count(*)group by로 합쳐진 데이터의 개수

select name, count(*) from users
group by name;
  • 최소값을 구하고 싶을 때는 min(필드명)
  • 최댓값은 max(필드명)
  • 평균값은 avg(필드명)

Order by

Order by: 데이터를 오름차순 또는 내림차순으로 깔끔하게 정렬할 때

// users 테이블에서 이름별로 묶어주고, 수를 센 다음, 오름차순으로 정리하기
// 실행 순서: from -> group by -> select -> order by

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

// 디폴트는 오름차순. 내림차순 정렬은 마지막에 desc를 붙여주기
  • where 절이 포함될 때 쿼리 실행 순서: from -> where -> group by -> select

Alias(별칭): 다른 테이블에 같은 필드명이 있거나, 다른 필드명을 지어주고 싶을 때

// 테이블명 바로 뒤에 앞 글자를 따서 별칭 붙이기
// 또는 as 뒤에 별칭 붙이기

select payment_method, count(*) as cnt from orders o
where o.course_title = '앱개발 종합반'
group by payment_method

※ 스파르타코딩클럽의 '엑셀보다 쉬운 SQL' 강의를 듣고 정리한 SQL 기초 문법입니다.
profile
Back-End Wep Developer. 꾸준함이 능력이다.
post-custom-banner

0개의 댓글