select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명
group by 필드명
Group by : 범주의 통계를 내줌
예시 ) 항상 쿼리의 순서를 select from users select name, count(*) from users 카운트별 사이 공간무
group by name -> ctrl+enter 후 group by name 이런 식으로 가야 안 헷갈림
select 범주가 담긴 필드명, avg(평균값을 알고 싶은 필드명) from 테이블명 group by 범주가 담긴 필드명;
min(@@) = @@의 최솟값 max(@@) = @@의 최댓값
avg(@@) = @@의 평균값 round(avg(@@),n)= @@ 평균값 소숫점 n자리까지 출력 0일땐 그냥 반올림
sum(@@) = @@의 합계
Order by 쿼리
select name, count(*) from users
group by name
order by count(*) - 오름차순으로 정렬, 내림차순은 desc 뒤에 붙여주기
Where, group by, order by 함께 사용
select payment_method, count(*) from orders
where course_title = "웹개발 종합반"
group by payment_method;
payment_method;group by 에서 빈번한 이슈
select * from orders -> payment_method 대표값은 나오나 통계값은 안나옴
group by payment_method
select count(*) from orders -> select 옆에 범주값이 없어서 통계 나오긴 하는데 뭔지 모름
group by payment_method
연습하기 예
문자열 기준으로 정렬 : order by email, order by name ....
시간 기준으로 정렬: order by created_at or order by created_at desc
2022.06.07 퀴즈를 풀며
앱개발 종합반의 결제 수단별 주문건수 세어보기
select payment_method, count(*) from orders
where course_title = '앱개발 종합반'
group by payment_method
Gmail을 사용하는 성씨별 회원수 세어보기
select name, count(*) from users
where email like '%gmail.com'
group by name
Course_id별 '오늘의 다짐'에 달린 평균 like 개수 구해보기
select course_id, avg(likes) from checkins
group by course_id
헷갈리지만 어떤 테이블이 들어가야하는지 범주가 무엇인지 점차 익숙해지는 중
쿼리를 이렇게 작성하면 편하다.
1) show table로 어떤 테이블이 있는지 살펴보고
2) 제일 원하는 정보 있을 듯 한 테이블에 select * from 테이블명 limit 10 쿼리 날려보기
3) 정보 없으면 다른 테이블에도 2) 해보기
4) 테이블 찾으면 범주 나눠서 보고싶은 필드 찾기
5) 범주별로 통계를 보고싶은필드 찾기
6) SQL쿼리 작성하기
Alias: 별칭기능
혼동을 최소화, 원하는 이름으로 출력키 위해 사용
select * from orders o
where o.course_title = '앱개발 종합반'
select payment_method, count(*) as cnt from orders o
where o.course_title = '앱개발 종합반'
group by payment_method
2주차 숙제!
네이버 이메일로 앱개발 종합반을 신청한 주문의 결제수단별 주문건수 세어보기
select payment_method, count(*) from orders
where course_title ='앱개발 종합반' and email like '%naver.com'
group by payment_method
해설지 안보고 풀기 성공해서 처음으로 희열을 느꼈다. 웹개발 1주차 숙제 하다가 포기했는데 또 다시 해보아야지. 보람차다 아쥬.
'스파르타 코딩클럽 > SQL' 카테고리의 다른 글
TIL)SQL Join, Union (0) | 2022.06.24 |
---|---|
1주차_SQL Database, 쿼리문 Where 절 (0) | 2022.05.31 |