지정한 필드명으로 그룹화
SELECT name, COUNT(*) FROM users
GROUP BY name
from → group by → select 순서로 실행
SELECT week, MIN(likes) FROM checkins
GROUP BY week
min을 이용해서 그룹화된 주마다 최소 좋아요 갯 수 조회 가능
max를 이용하면 최고값을 볼 수 있고 avg를 사용하면 평균값 조회 가능
sum을 이용하면 총합 조회 가능
SELECT week, round(avg(likes),1) FROM checkins
GROUP BY week
round로 avg를 감싸서 정수로 표현할 수 도 있고, 뒤에 1을 붙힘으로서 소수점 첫 째자리까지 노출시킬 수 도있음
정렬
SELECT name, COUNT(*) FROM users
GROUP BY name
ORDER BY count(*) DESC
users테이블에 name별로 그룹화를 시키고 name별 갯수를 카운트 해주고 카운트가 많은 순으로 정렬
뒤에 desc를 붙히면 내림차순, 붙이지 않으면 오름차순으로 정렬
from → group by → select → order by 순으로 실행
SELECT payment_method, COUNT(*) FROM orders
WHERE course_title = '웹개발 종합반'
GROUP BY payment_method
ORDER BY COUNT(*)
SELECT payment_method, COUNT(*) AS cnt FROM orders o
WHERE o.course_title = '앱개발 종합반'
GROUP BY payment_method
orders 계속 타이핑하면 불편하니 뒤에 o를 붙혀서 앞으로 o라고 부르겠다 라고 별칭 지정
나중에 특정 필드를 where로 볼때도 o.을 붙힘으로서 이게 orders 에서 찾으라고 하는거다 라고 인식할 수 있음
count()을 통해 결과를 도출하면 밑 결과창의 컬럼명이 count()으로 자동 등록되는데 뒤에 as cnt를 붙히면 컬럼명이 cnt로 바뀐다 다른 글자로 하고싶으면 cnt 대신 다른 문자를 넣으면 된다.
네이버 이메일을 사용하여 '앱개발 종합반'을 신청한 주문의 결제수단별 주문건수 세어보기
SELECT payment_method, COUNT(*) FROM orders o
WHERE o.course_title = '앱개발 종합반'
AND email LIKE '%naver.com'
GROUP BY payment_method 