SQL - Group by, Order by

Jiwon·2022년 8월 1일
0

Group By

한 마디로 그룹으로 묶어준다.

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

count(*)를 하는데, 어떤 카운트?
앞에 있는 name의 카운트.

어떤 name? -> 그룹으로 묶어진 name들.

즉, 그룹으로 묶어진 name들의 name을 찾고, 그 name 들의 count 값을 select하겠다.

순서의 중요성
1. select from users group by name.
-> name으로 묶었네 ? 아, name이랑 count를 보고 싶은거구나? 찾는 필드만 바꿔주자.
2. select name, count(
) from users group by name

실행되는 순서 : from -> group by -> select

round

소숫점 자리 제한

select week, round(AVG(likes),2) from checkins 
group by week;

AVG : 평균 구하기, 소숫점 출력
round : 괄호 안에 1,2 등 숫자로 몇 자리의 소숫점 자리까지 나타낼지 제한

Order by

한 마디로 정렬

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

desc는 내림차순인데 안 쓰면 default 가 ASC (오름차순)


내림차순 : 큰 것 부터 작은 순서대로 ( 100에서 1 )
오름차순 : 작은 것 부터 큰 순서대로 ( 1에서 100 )

order by는 group by 가 있을 때만 쓸 수 있나요?
아뇨.
그냥 써도 됩니다.

select likes from checkins
order by likes desc;

실행순서 : from -> group by -> select -> order by

profile
과연 나는 ?

0개의 댓글