SQL_2주차 개발일지 (Group by, Order by)

이민희·2022년 8월 24일
0

SQL 일지

목록 보기
4/5
Group by : 범주의 통계
min : 최소값
max : 최대값
avg : 평균값
- round (avg(필드명),2) : 평균값에서 소수점 2자리까지 반올림된 수 확인 가능
sum : 합계

desc : 내림차순으로 변경 (기본으로 오름차순 asc으로 정렬)

쿼리 작성할 때 유의점!
➡️처음부터 끝까지 모든 내용을 담도록 작성? NO!
➡️기본 부터 작성하고, 적용된 내용을 중심으로 수정하면서 작성!

Surname이 동일한 사람들이 몇 명인지 알고싶을 때

1) 기본 쿼리 작성

select **_*_ **from users u 
group by name

2) 적용 필요한 부분을 수정

select **_name, count(*)_** from users u 
group by name 

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

select week, min(likes) from checkins
group by week 
1. group by week 으로 가장 먼저 주차별로 나누기
2. 주차별 조건 안에서 min_최솟값 (likes_좋아요) 입력하기

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

select payment_method, count(*) from orders
where course_title = "웹개발 종합반"
group by payment_method
order by (count(*)) desc
위 쿼리가 실행되는 과정 : from → where → group by → select 
만약 정렬이 필요하다면 마지막에 order by 입력!

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

SELECT payment_method, count(*) from orders o 
where course_title like "앱개발 종합반"
group by payment_method 

[퀴즈] Gmail 을 사용하는 성씨별 회원수 세어보기

SELECT name, count(*) from users u 
where email like "%gmail.com"
group by name

🚨[퀴즈] course_id별 '오늘의 다짐'에 달린 평균 like 개수 구해보기

SELECT course_id, round(avg(likes),1) from checkins c 
group by course_id 

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

Alias?? 별칭 지어주기!

select payment_method, count(*) as cnt from orders o
where o.course_title = '앱개발 종합반'
group by payment_method

➡️ as *** -> ***으로 출력됨

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

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

오류 메세지가 뜬다면 당황하지 말고
천천히 읽으면서 오류 해결하기💪

Group by A, B
➡️ 그룹을 한 개만 만들지 않아도 괜찮다.
2개로 그룹을 만들어도 된다는 점을 기억하자!

profile
뮤지컬 무대감독 출신, PM/PO를 꿈꾸는 메모리입니다.

0개의 댓글