본문 바로가기

데이터 다루기

스파르타 코딩클럽 엑셀보다 쉬운 SQL 2주차

2주차 복습을 시작한다.

 

 

group by

범주별로 통계를 낼 수 있음

 


 

(아래에서 title은 필드명임)

select count(*) from table명

group by title

각 제목별 카운트를 세어준다.

 


 

옆에 제목을 같이 보고 싶다면 카운트 앞에 필드명인 title을 넣어주면 

중복되는 title없이 title 리스트가 나오고 오른쪽에 카운트 세어진 결과가 함께 나온다.

select title, count(*) from table명

group by title

여기에서 쿼리가 실행되는 순서는 from -> group by -> select이다.

 


 

다음으로는 정렬!

 

카운트 결과가 나왔을 때, 오름차순이나 내림차순으로 볼 수 있어야 뭔가를 파악할 수 있겠음

select title, count(*) from table명

group by title

order by count(*)

이렇게하면 기본적으로 오름차순으로 정렬이 됨

 


 

내림차순으로 정렬하고 싶다면?

select title, count(*) from table명

group by title

order by count(*) desc

desc만 붙여주면 된다. (descending의 약자)

여기서 쿼리가 실행되는 순서는?

from -> group by -> select -> order by 가 되겠다.

 


 

숫자뿐 아니라 문자도 정렬가능하다. (가나다순, abc순)

아래 이미지에서 다룬 데이터는 김**, 이**과 같이 성만 알 수 있는 데이터이다.

그래서 이름으로 group by를 하면 성씨별로 묶어주고 몇명씩인지를 알 수 있다.

거기에 이름으로 정렬을 해주었더니 강씨부터 정렬된 것을 볼 수 있다.

 

 

참고로 아래와 같이 써준다면 위 이미지 결과에서 "count(*)"대신 "cnt"라고 보여지게 된다.

select name, count(*) as cnt from users

group by name

order by name

 


 

시간순으로도 정렬이 가능하다.

이미지와 같이 desc를 붙여주면 최신순으로 정렬이 된다.

 

 

 

 

2주차 복습 완료

 

 


loading