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주차 복습 완료
'데이터 다루기' 카테고리의 다른 글
프로그래머스 SQL 코딩테스트 연습 (0) | 2023.05.25 |
---|---|
해커랭크 SQL 오류 / Weather Observation Station 17 (1) | 2023.04.18 |
스파르타 코딩클럽 SQL 4주차까지 완강 / 문법 정리 (0) | 2023.03.17 |
스파르타코딩클럽 SQL 3주차 - join 개발일지 (0) | 2023.03.15 |
스파르타 코딩클럽 SQL 1주차 (0) | 2023.03.13 |