[SQL] Group by, Order by 기능 활용하기

5386 단어 sqlsql

이 글은 제가 개발을 하며 알게 된 내용, 느낀 점 등을 기록하고자 쓰는 글입니다. '스파르타코딩클럽'의 '엑셀보다 쉬운 SQL' 강의를 듣고 배우고 있습니다. 내용에 대한 반박과 피드백은 늘 감사히 받겠습니다.

[수업 목표]

  • 동일한 범주의 데이터를 묶어서 통계를 내주는 Group by를 이해한다.
  • 출력하는 데이터를 필드의 값으로 정렬하여 출력하는 Order by를 익힌다.
  • 조금 더 복잡한 분석을 위해 자주 사용되는 유용한 문법을 익힌다.

범주의 통계를 내주는 Group by

Group by는? 동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것

select 필드명, count(*) from 테이블명
group by 필드명;

ex) 성씨별로 몇 명의 회원이 있는지 알아보자.

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

/* 코드 설명
from users : users 테이블에서 데이터를 불러옵니다

group by name : name이라는 필드에서 동일한 값을 갖는 데이터를 하나로 합쳐줍니다

select name, count( ) : 이름과 count()를 출력해 주는데,
여기서 count(*)는 group by로 합쳐진 데이터의 개수를 세어줍니다.
*/

Group by 기능 알아보기

동일한 범주의 개수 구하기

select 필드명, count(*) from 테이블명
group by 필드명;

동일한 범주에서의 최솟값 구하기

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

동일한 범주에서의 최댓값 구하기

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

동일한 범주의 평균 구하기

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

동일한 범주의 합계 구하기

select 필드명, sum(합계를 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;

깔끔한 정렬이 필요할 땐? Order by

Order by는 모든 SQL 쿼리에 적용될 수 있는 기능이다.
코드를 다 작성하고, 마지막에 order by 정렬할 필드명; 을 작성해주면 데이터가 순서대로 정렬된다.

select * from 테이블명
order by 정렬의 기준이 될 필드명;

기본설정은 오름차순이다. 내림차순으로 하고 싶으면 desc를 뒤에 붙여주면 된다. 오름차순은 asc이다.

쿼리의 실행 순서

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

위 쿼리가 실행되는 순서: from → group by → select → order by

이외 유용한 문법 : 별칭 Alias


👉 참고한 내용

스파르타코딩클럽 '엑셀보다 쉬운 SQL' 2주차 강의 & 강의자료

좋은 웹페이지 즐겨찾기