동일한 범주의 데이터를 묶는다.
select grade, count(*) from students
group by grade
//학생 테이블에서 grade별로 묶고 옆에 갯수를 보겠다.
count
min
max
avg
round
//갯수
select level, count(*) from subjects
group by level
//과목 테이블에서 수준별로 묶고 각 갯수를 보겠다.
//최소값
select week, min(likes) form checkins
group by week
//checkins테이블에서 주차별로 묶고 각 주차의 최소 좋아요 값을 보겠다.
//최댓값
select week, max(likes) form checkins
group by week
//checkins테이블에서 주차별로 묶고 각 주차의 최대 좋아요 값을 보겠다.
//평균값
select week, avg(likes) form checkins
group by week
//checkins테이블에서 주차별로 묶고 각 주차의 평균 좋아요 값을 보겠다.
//반올림
select week, round(avg(likes),2) form checkins
group by week
//checkins테이블에서 주차별로 묶고 각 주차의 평균 좋아요 값을 소숫점 두자리까지만 보겠다.
//합계
select week, sum(likes) form checkins
group by week
//checkins테이블에서 주차별로 묶고 각 주차의 좋아요 총 합을 보겠다.
select * from users
order by email
//users테이블에서 이메일 오름차순으로 정렬
select * from users
order by created_at desc
//users테이블에서 생성날짜 내림차순으로 정렬
select name, count(*) from users
group by name
order by count(*)
//users테이블에서 name필드별로 묶어 갯수를 보여줄 때, 오름차순 정렬
select name, count(*) from users
group by name
order by count(*) desc
//users테이블에서 name필드별로 묶어 갯수를 보여줄 때, 내림차순 정렬
select name, count(*) from users
where email likes '%gmail.com'
group by name
//gmail을 사용하는 유저를 성씨별로 묶고 갯수를 보겠다.
select course_id, round(avg(likes),2) from checkins
group by course_id
//checkins테이블에서 courseId별로 묶고, 좋아요 평균을 소숫점 2자리까지만 보겠다.
select payment, count(*) from orders
where course_title = '토익'
group by payment
order by count(*) desc
//토익 수업 주문자를 결제수단별로 묶고 갯수를 내림차순으로 정렬
as
를 사용하여 원하는대로 변경하여 출력 가능하다.select o.payment, count(*) as cnt from orders o
where o.email likes '%gmail.com' and o.course_title = '앱개발종합반'
group by o.payment desc
//orders 테이블에 별칭은 o
//gmail을 사용하면서 앱개발종합반을 신청한 주문의 결제수단별 주문건수를 내림차순으로 정렬
//count를 보여주는 필드명은 cnt로 출력