Group by, Order by
1회차에서 배운건 원하는 데이터만 쏙쏙 뽑아내는거~
이제부터는 약간의 통계를 낼 수 있도록 뽑아보자!
최대/최소/평균/갯수 등
날것의 데이터를 -> 의미있는 정보로 변환
더 나아가면 '범주(카테고리)'가 궁금할 수 있습니다.
ex. 과목별 신청자 평균 연령, 과목별 신청자수, 이씨성 가진 사람 수~
select name, count(*) from users
group by name
네이버메일을 쓰는 사람 중에 성씨별로 사람 수
동일한 범주의 개수 구하기 : group by, count()
동일한 범주의 최소값 구하기 : min(필드명)
최대값구하기 : max(필드명)
평균값: avg(필드명) 평균에서 반올림~ 으찌하노~ round(avg(필드명),2) round, 소수점몇째짜리까지~
합계: sum(필드명) 좋아요의 합계 sum(likes)
order by
정렬은 맨 마지막에 한다!
order by count(*) desc
기본정렬은 오름차순(asc)이다. 내림차순은 뒤에 desc 붙인다~
order by는 숫자 말고 문자열기준 정렬도 가능 (알파벳~ 한글~)
시간도 가능 (날짜/시간)
퀴즈
1) 앱개발 종합반의 결제수단별 주문건수 세어보기
2) gmail을 사용하는 성씨별 회원수 세어보기
3) course_id별 오늘의 다짐에 달린 평균 like 개수 구해보기
Alias 별칭기능
쿼리가 너무 길어지면 헷갈려지기 때문에 별칭 기능을 지원한다.
테이블명 뒤에 알파벳 붙이고
orders o
o.course_title -> orders 테이블에 있는 course_title 필드를 말하는거야~
count(*) as cnt
count(*) 필드를 cnt라고 부르자~~
숙제
네이버 이메일을 사용하여 앱개발 종합반을 신청한 주문의
결제수단별 주문건수 세어보기