#동일한 범주의 통계구하기
group by [분류할 필드명]
~예시1. 성씨별로 분류
SELECT name, count(*) from users u
group by name
유저안의 이름을 같은 종류로 그룹을 형성시키고 해당 이름의 갯수를 표현한다.
~퀴즈1. naver 이메일을 쓰는 사람들 중에서 성씨별로 몇명이 있는가
SELECT email, name , count(*) from users u
WHERE email like ('%naver.com')
group by name
~예시2. 주차별로 오늘의 다짐의 좋아요의 최소값 구하기
SELECT week, min(likes) from checkins c
group by week
~예시3. 주차별로 오늘의 다짐의 좋아요의 최대값 구하기
SELECT week, max(likes) from checkins c
group by week
~예시4. 주차별로 오늘의 다짐의 좋아요의 평균값 구하기
SELECT week, avg(likes) from checkins c
group by week
~예시5. 주차별로 오늘의 다짐의 좋아요를 더한값 구하기
SELECT week, sum(likes) from checkins c
group by week
범주를 min, max, avg, sum(분류할 필드명) 을 통해 최소, 최대, 평균 값을 표현 할 수 있다.
위의 통계는 round(값, 소수 표현 자릿수)를 통해 원하는 소수의 수적표현을 지정 할 수 있다.
#정렬 하기
order by [분류할 종류]
정렬은 분류가 모두 끝나고 난뒤에 해야되기 때문에 쿼리문의 제일 마지막단에 작성한다.
기본값은 오름차순이며 쿼리문의 끝에 desc를 작성하면 내림차순으로 정렬한다.
~예시6. 웹개발 종합반의 결제수단별 주문건수 세어보기
SELECT payment_method , count(*) from orders o
WHERE course_title = '웹개발 종합반'
group by payment_method
~퀴즈2. 예시6을 내림차순으로 정렬하기
SELECT payment_method , count() from orders o
WHERE course_title = '웹개발 종합반'
group by payment_method
order by count() desc
~퀴즈3. 앱개발 종합반의 결제수단별 주문건수 세어보기
select payment_method, count(*) from orders o
WHERE course_title = "앱개발 종합반"
group by payment_method
~퀴즈4. Gmail을 사용하는 성씨별 회원수 세어보기
select name, count(*) from users u
where email like '%gmail.com'
group by name
~퀴즈5. course_id별 오늘의 다짐에 달린 평균 like 수 구하기
select comment, course_id, round(avg(likes),1) from checkins c
group by course_id
#이외 유용하게 사용되는 문법
*별칭 사용 예시
-조건에서 별칭으로 구분하기. where 별칭.필드명 = 조건
-표기될 필드명에 별칭부여하기. select 필드명 as 별칭
~숙제. 네이버 이메일을 사용하여 앱개발 종합반을 신청한 주문의 결제수단별 주문건수 세어보기
select payment_method, count(*) FROM orders o
WHERE email like '%naver.com' and course_title = '앱개발 종합반'
group by payment_method