본문 바로가기
Luna's 개발일지/SQL

[SQL.05] Group by에 Order by와 where절 함께 써보기

by luna-crescent 2023. 5. 29.
728x90
활용할 예시 users 테이블의 데이터 불러오기
select * from users
id name email date address
user01 이** eee22@gmail.com 2023.01.02 서울
user02 김** kkmm@naver.com 2023.03.05 부산
user22 박** ppark@gmail.com 2023.01.26 울산
user109 이** lee33@gmail.com 2023.02.22 광주
user332 최** choi99@naver.com 2023.05.15 강릉
user098 김** kim45@hanmail.com 2023.04.07 경주
user123 문** moon52@naver.com 2022.12.15 진주
user234 이** yiyi@naver.com 2022.11.29 청주
user11 최** coco@gmail.com 2023.01.09 인천
이름별로 몇 명인지 세어보기
select name, count(*) from users
group by name
name count(*)
이** 3
김** 2
박** 1
최** 2
문** 1
group by로 묶어주고 order by로 정렬하기
select name, count(*) from users
group by name
order by count(*) desc
name count(*)
이** 3
김** 2
최** 2
박** 1
문** 1
desc : 내림차순
asc : 오름차순(생략가능)
users 테이블에서 오래된 순으로 정렬하기(오름차순)
select * from users
order by date asc
id name email date address
user234 이** yiyi@naver.com 2022.11.29 청주
user123 문** moon52@naver.com 2022.12.15 진주
user01 이** eee22@gmail.com 2023.01.02 서울
user11 최** coco@gmail.com 2023.01.09 인천
user22 박** ppark@gmail.com 2023.01.26 울산
user109 이** lee33@gmail.com 2023.02.22 광주
user02 김** kkmm@naver.com 2023.03.05 부산
user098 김** kim45@hanmail.com 2023.04.07 경주
user332 최** choi99@naver.com 2023.05.15 강릉
asc를 생략해도 동일한 결과
select * from users
order by date

쿼리문이 실행되는 순서

1. from으로 테이블 불러오기

2. group by로 범주를 묶어주기

3. select으로 불러올 필드 결정하기

4. order by로 정렬하기

pixabay RoMa
pixabay RoMa

활용할 예시 orders 테이블의 데이터 불러오기
select * from orders
order_no user_id part pay_method
123-515-123 user01 food card
123-515-125 user02 food kakaopay
123-515-127 user03 thing money
123-515-133 user04 food card
123-515-155 user05 thing card
123-515-129 user06 food money
123-515-157 user07 food kakaopay
123-515-136 user08 thing card
123-515-177 user09 food card

 

식품파트의 결제수단별 주문건수 세고, 오름차순 정렬하기
select pay_method, count(*) from orders
where part = 'food'
group by pay_method
order by count(*)
pay_method count(*)
money 1
kakaopay 2
card 3

 

728x90
반응형

댓글