Group by : 동일한 범주의 데이터를 묶어줌

같은 성씨의 데이터를 하나로 묶고, 각 성씨의 회원수를 구할 수 있다.

문제의 '~별로' 가 있다면 group by 라고 생각하면 된다.

 

 

Order by : 깔끔하게 데이터를 오름차, 내림차로 정렬할 수 있음

order by를 이용한 정렬은 맨 마지막에 한다.

기본적으로 order by 뒤에 아무것도 적지 않는다면 오름차순으로 정리된다.

order by 뒤에 desc를 넣으면 내림차 순으로 정리된다.

숫자 뿐만 아니라 문자열, 알파벳, 한글, 시간으로도 잘 정렬이 된다.

 


 

min(필드명)

: 동일한 범주에서 최솟값 구하기

예시) 주차별 '오늘의 다짐'의 좋아요 최솟값 구하기

SELECT week, min(likes) from checkins
group by week;

 

max(필드명)

: 동일한 범주에서 최댓값 구하기

예시) 주차별 '오늘의 다짐'의 좋아요 최댓값 구하기

 

SELECT week, max(likes) from checkins
group by week;

 

 

avg(필드명)

: 동일한 범주의 평균 구하기

예시) 주차별 '오늘의 다짐'의 좋아요 평균값 구하기

SELECT week, avg(likes) from checkins
group by week

 

sum(필드명)

: 동일한 범주의 합계 구하기

예시) 주차별 '오늘의 다짐' 좋아요 합계 구하기

SELECT week, sum(likes) from checkins
group by week

 

 


[문제] 앱개발 종합반의 결제수단별 주문건수 세어보기

내가 쓴 쿼리 = 정답 쿼리

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 , round(avg(likes),1) FROM checkins
group by course_id;

 

 


 

쿼리를 이렇게 정리하면 편하다!


(1) show tables로 어떤 테이블이 있는 지 살펴보기

(2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 limit 10 쿼리 해 보기
(3) 원하는 정보가 없으면 다른 테이블에도 (2) 해 보기
(4) 테이블을 찾았으면 범주를 나눠서 보고싶은 필드를 찾기
(5) 범주별로 통계를 보고싶은 필드를 찾기
(6) SQL 쿼리 작성하기

 

 


 

[숙제] 네이버 이메일을 사용하여 '앱개발 종합반'을 신청한 주문의 결제수단별 주문건수 세어보기

내가 쓴 쿼리 = 정답 쿼리

SELECT payment_method, count(*) from orders
WHERE email LIKE '%naver.com' and course_title = '앱개발 종합반'
group by payment_method;

 

 

 

 

'SQL' 카테고리의 다른 글

[22.02.14] SQL 문법 정리  (0) 2022.02.14
[22.02.14] SQL - Subquery (4주차)  (0) 2022.02.14
[22.02.11] SQL - Left join, Inner join (3주차)  (0) 2022.02.11
[22.02.08] SQL - select, where(1주차)  (0) 2022.02.08

+ Recent posts