본문 바로가기
SQL 개발일지

👩‍💻 [SQL] GROUP BY, ORDER BY

by 노랑사랑팽이 2022. 7. 7.

✏️범주의 통계

🔎 Group by

수도별, 성별, 수강과목별 데이터를 보고 싶을때 사용.

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

users 데이터의 이름은 '김**'으로 저장되어 있으므로

성별 데이터를 불러오는 명령어이다.

 

✏️쿼리 진행 순서 : from → group by → select

데이터를 그룹별로 가져오는 것이다.

 

group by 데이터값을 where 데이터값과 비교해 살펴볼 수 있다.

select * from users 
where name = "신**";
select name, count(*) from users
group by name;

 

✏️ 정렬

🔎  Order by

 

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

오름차순 정렬 acs (ascending 약자)

 

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

내림차순 정렬 desc (descending 약자)

내림차순 정렬은 추후 rank(순위)에도 쓰인다.

 

✏️쿼리 진행 순서 : from → group by → select → order by

 

 

✏️ 별칭

🔎  Alias

쿼리가 길어지면 헷갈리므로 별칭을 만들어 줍니다.

이는 다음 수업인 join문을 쓸때 유용하게 쓰입니다.

select payment_method, count(*) as cnt from orders o
where o.course_title = '앱개발 종합반'
group by payment_method
order by cnt desc

내림차순 정렬 조건을 줄때도 위와 같이 별칭 cnt를 써서 정렬가능합니다.


 

🍏 KEEP, 습관 중요한 것

범주(group by), 조건(where), 정렬(order by)

위와 같은 조건들을 설정하게 되면서 원하는 정보만 추출할 수 있게 되었다.

조건들이 많이진만큼 조건을 나열하는 순서가 중요하다고 느껴졌다.

 

🍎 PROBLEM, 이슈, 에러, 오류

select * from 테이블명

where 조건

group by 범주 

order by 정렬조건

이 순서를 지키지 않고 select문 다음에 범주를 쓰고 조건문을 쓰니 오류가 발생했다. 

 

 🍉 TRY 시도

처음에는 뭐때문에 오류가 발생한건지 몰랐는데

오류 해석문을 보고 where조건문이 잘못되었다는걸 발견하고

그 주변 코드를 살펴보고 순서를 바꾸니 제대로 실행되었다.

sql문을 작성할때 문법 순서에 유의해야 겠다.

 

 

댓글