개발일지/나의 개발일지 SQL

개발일지 2 - 엑셀보다 쉬운 SQL 배워보자, Group by, Order by

숲속길 2023. 1. 14.
728x90
반응형

개발일지 1 - 엑셀보다 쉬운 SQL 배워보자, Group by, Order by

 

1. Group by

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

 

 1.1 주차별 '오늘의 다짐' 개수 구하기

select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명
group by 범주별로 세어주고 싶은 필드명;

1.2 주차별 '오늘의 다짐' 의 좋아요 최솟값 구하기

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

1.3 주차별 '오늘의 다짐'의 좋아요 최댓값 구하기

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

1.4 주차별 '오늘의 다짐'의 좋아요 평균값 구하기

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

1.5 주차별 '오늘의 다짐'의 좋아요 합계 구하기

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

 

2. Order by

정렬기능

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

 

2.1 order by 실행 순서

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

 

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

  1. from users: users 테이블 데이터 전체를 가져오고,
  2. group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐준다.
  3. select name, count(*): name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어준다.
  4. order by count(*): 합쳐진 데이터의 개수에 따라 오름차순으로 정렬해 준다.

2.2 where, group by, order by 함께 사용하기

where절 조건이 하나 추가 되고, 그 이후에 group by, order by 가 실행된다.

select payment_method, count(*) from orders
where course_title = "웹개발 종합반"
group by payment_method;

 

위 쿼리 실행순서 : from → where → group by → select

 

  1. from orders: users 테이블 데이터 전체를 가져오고
  2. where course_title = "웹개발 종합반": 웹개발 종합반 데이터만 남겨준다.
  3. group by payment_method: 같은 payment_method을 갖는 데이터를 합쳐준다.
  4. select payment_method, count(*): payment_method에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어준다.

만약 order by 가 추가가 되면 order by는 결과물을 정렬해 주는 것이기 때문에 맨 나중에 실행된다.

 

 

SQL group by, order by

 

 

728x90
반응형

댓글

추천 글