본문 바로가기
Become Data analyst!

나의 SQL 공부일지

by 슬기로운 영어생활 2022. 1. 26.
728x90
반응형

SQL 공부 기록

 

오늘도 마찬가지로 

SQL 쿼리문을 복습할 겸

저의 공부 일지를 남겨 보겠습니다.

 

비전공자로서 이제 시작한 만큼

저와 같은 고민을 하고 계신 분들에게

작은 도움이 되었으면 좋겠습니다:)

 


쿼리문 작성해보기

 

데이터 베이스 테이블에 저장된

날것의 데이터를 의미 있는 정보로

변환하기 위해서는 범주로

묶어주는 것이 반드시 필요한데요.

 

오늘은 동일한 범주의 데이터를

묶어서 통계를 낼 수 있는

Group by 문법과

 

출력하는 데이터를 필드의 값으로

정렬하여 출력하도록 하는

Order by 문법에 대해서

예제를 통해 연습해보겠습니다.

 

과목별 신청자 수

 

과목별 신청자수를 구한다고 가정할 때

한 가지 과목만 있다면 다행이지만

과목이 여러개인 경우가 대부분입니다.

 

그럼 과목이 여러개라고 해서

매번 쿼리문을 작성해야 할까요?

 

이런 경우에서 필요한 문법이

바로 Group by 입니다.

 

Group by 문법은 동일한 범주의

데이터를 묶어주는 역할을 하는데요.

 

동일한 범주를 갖는 데이터를

하나로 묶어서 범주별 통계를

내주는 것을 의미합니다.

 

 

이렇게 Group by를 활용하면

내가 원하는 데이터를 범주를 묶어서

확인할 수 있습니다.

 

Group by 쿼리문을 작성하는 순서는

 

1) 먼저 내가 보고 싶은

데이터가 있는 테이블을 불러옵니다

Select * from orders

 

2) 원하는 필드에서 동일한 값을 갖는

데이터를 하나로 합쳐줍니다.

Group by course_title

 

3) 원하는 필드에 따라 합쳐진 데이터가

각각 몇 개가 합쳐진 것인지 확인합니다.

Select course_title,count(*) from orders

 

주차별 '코멘트'의 좋아요 최솟값

 

동일한 범주 (특정 필드)의 최솟값은

Min을 활용하여 구할 수 있는데요.

 

 

 

마찬가지로 먼저 보고 싶은 테이블을

from ~~ 을 활용하여 열어주고

(Select * from checkins)

 

그다음 묶고 싶은 범주를

Group by + 필드명으로 작성

(Group by week)

 

마지막으로 Select 문을

범주가 담긴 필드명과 min을

활용하여 쿼리문을 작성하면 됩니다.

(Select week, min(likes) from checkins)

 

Min 외에도 최댓값은 Max,

평균값은 Avg, 합계는 Sum을

활용하여 원하는 통계에 관련된

문법을 사용하여 쿼리를 작성하면 됩니다.

 


 

그럼 이렇게 출력된 데이터의 값이

뒤죽박죽 섞여 있을 때

이쁘게 정렬해줄 수 있는 문법인

Order by를 알아보도록 하겠습니다.

 

 

정렬을 하고 싶은 경우에는

기존 작성한 코드에 

Order by count(*)만 추가하면 됩니다!

 

오름차순으로 정렬시키고 싶을 땐

그냥 Order by만 붙여주시고

 

내림차순으로 하고 싶을 땐

뒤에 Descending의 약자인

desc만 붙여주면 된다는 점

꼭 기억해주세요:)

 


오늘은 데이터를 범주별로

묶을 수 있는 Group by와 

데이터를 정렬해주는

Order by 쿼리문 작성하는 것을

공부해봤습니다.

 

개인적으로 관련은 없지만

엑셀로 다양한 함수를 활용했던 게

도움이 되는지 SQL 쿼리문 작성 시

비슷한 느낌을 많이 받아

하나하나 배워가는 게 정말 재밌네요.

 

다음에도 열심히 공부해보고

저만의 발전 일지를

작성해보도록 하겠습니다~

 

 

728x90
반응형

댓글