스파르타/SQL

220304. 엑셀보다 쉬운 SQL 2주차 - Group by, Order by

h.단디 2022. 3. 4. 15:41

 


Select, Where로 '날것 그대로'가져온 데이터를 '의미 있는 정보'로 변환 !

통계(최소, 최대, 평균, 갯수) 등등

Group by로 동일한 범주의 데이터를 묶어주고, Order by로 데이터를 깔끔하게 정렬할 수 있음 

 


 

Group by

같은 범주의 데이터를 묶어줌. (~~~별 어쩌구 저쩌구하면 group by를 떠올려라)

 

작성할 때 순서!  : 사용법 아는 문법이라고 첫줄부터 완성본처럼 써내려가지 말고, 다음의 순서처럼 차근차근해야 실수가 없음. 

먼저 group by로 묶어준 후
select에 name, count(*)

 

동일한 범주 개수 구하기 - count(*)

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

 

동일한 범주에서의 최솟값 구하기 - min(필드명)

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

 

동일한 범주에서의 최댓값 구하기 - max(필드명)

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

 

동일한 범주의 평균 구하기 - avg(필드명)

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

 cf) 소수점 반올림하기 - round로 묶어주면 됨! 소수점 몇째자리까지 보여줄지도 표시!

 

동일한 범주의 합계 구하기 - sum(필드명)

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

 


 

Order by

결과 정렬하기! 정렬은 다 뽑고 마지막에 하는 것.

숫자 뿐만 아니라 문자열, 시간순으로도 정렬가능함.

 

기본적으로 오름차순임
내림차순하려면 desc
꼭 group by와 함께 쓰여야만 하는 것도 아님!

 


 

Where와 함께 써보기

어렵게 생각할 필요없음. 걍 where로 조건이 추가될 뿐

 


 

  • [퀴즈] 앱개발 종합반의 결제수단별 주문건수 세어보기

 

  • [퀴즈] Gmail 을 사용하는 성씨별 회원수 세어보기

 

  • [퀴즈] course_id별 '오늘의 다짐'에 달린 평균 like 개수 구해보기

 

 


 

Alias

별칭기능. 쿼리가 길어지면 한눈에 들어오기 힘들기 때문에 별칭기능으로 테이블, 필드에 붙는 거

1. 테이블 명 뒤에 약자 (보통 알파벳 1~2글자) 붙이면, 나중에 필드명에 붙여서 좀 더 구체적으로 명시할 수 있음.

2. ~as ~ 

 

 

 


[숙제]

네이버 이메일을 사용하여 앱개발 종합반을 신청한 주문의 결제수단별 주문건수 세어보기