한 마디로 그룹으로 묶어준다.
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
소숫점 자리 제한
select week, round(AVG(likes),2) from checkins
group by week;
AVG : 평균 구하기, 소숫점 출력
round : 괄호 안에 1,2 등 숫자로 몇 자리의 소숫점 자리까지 나타낼지 제한
한 마디로 정렬
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