본문 바로가기

스파르타 코딩클럽/SQL

TIL)SQL select, Group by, count(*) from

반응형

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