엑셀보다 쉬운, SQL 2주차

Thomas·2023년 3월 16일
0

범주의 통계를 내주는 (Group by)

EX) 김씨 몇명, 이씨 몇명 같은 성을 가진 사람수 세기
SELECT name, count() FROM users
group by name
-> name, count(
)를 row 목록 col 결과값 보여줌

group by 안에 count를 쓰게 되면 name으로 묶이는 애들의 개수들을 세워줌

동일한 범주에서 최소값 구하기 (Min)

EX) '주'차별로 최소의 likes 받은 값 구하기
SELECT week, min(likes) FROM checkins
group by week

select 범주가 담긴 필드명, min(최소값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명

동일한 범주에서 최대값 구하기 (Max)

EX) '주'차별로 최대의 likes 받은 값 구하기
SELECT week, max(likes) FROM checkins
group by week

동일한 범주에서 평균값 구하기 (Avg)

EX) '주'차별로 평균의 likes 받은 값 구하기
SELECT week, round(avg(likes),2) FROM checkins
group by week
-> 소수점 2자리수까지 반올림(round(,개수))

동일한 범주에서 합계값 구하기 (Sum)

EX) '주'차별로 평균의 likes 받은 값 구하기
SELECT week, sum(likes) FROM checkins
group by week

깔끔한 정렬이 필요할 땐 (Order by)

order by로 앞의 결과를 정렬

EX) 같은 성 가진 사람 정렬(내림차순)
SELECT name, count(*) from users
group by name
order by count(
) DESC

where와 group by, order by 함께 사용하기

EX) 웹 개발 종합반의 결제수단별 주문건수 세어보기
SELECT course_title , payment_method , count(*) from orders
where course_title = '웹개발 종합반'
group by payment_method
order by count(
) desc

퀴즈

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

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

이외 유용한 문법 배워보기

별칭 기능: Alias
별칭 -> 쿼리가 점점 길어지면서 종종 헷갈리는 일이 생길 수 있습니다. 그래서 Alias 별칭 기능을 지원.

EX1)
SELECT * from orders o
WHERE o.course_title = '앱개발 종합반'

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

숙제

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

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

profile
Backend Programmer

0개의 댓글