SQL 2주차 개발일지

이대희·2022년 5월 10일
0

SQL

목록 보기
2/4
post-thumbnail

[수업 목표]

  1. 동일한 범주의 데이터를 묶어서 통계를 내주는 Group by를 이해한다.
  2. 출력하는 데이터를 필드의 값으로 정렬하여 출력하는 Order by를 익힌다.
  3. 조금 더 복잡한 분석을 위해 자주 사용되는 유용한 문법을 익힌다.

우리는 데이터에서 무엇이 궁금할까?
통계=최대/최소/평균/개수

우리는 데이터에서 무엇이 궁금할까?

q.성씨별 회원수를 Group by로 쉽게 구해보기
a.select name, count(*) from users
group by name;

q.주차별 '오늘의 다짐'개수 구하기
a.select week, count(*) from checkins
group by week;

q.주차별 '오늘의 다짐'의 좋아요 최솟값 구하기
a.select week, min(likes) from checkins
group by week;
+최댓값은 min대신에 max를 넣어주면되고 평균값은 avg를 넣어주면 된다.

q.주차별 '오늘의 다짐'의 좋아요 합계 구하기
a.select 범주가 담긴 필드명, sum(합계를 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;

q.결과의 개수 오름차순으로 정렬해보기(내림차는 cont()뒤에 desc를 붙여준다)
a.select name, count(
) from users
group by name
order by count(*);

q.like를 많이 받은 순서대로 '오늘의 다짐'을 출력해 볼까요?(desc)
a.select * from checkins
order by likes desc;
적게 받은 순서대로 보려면 맨끝의 desc를 제거하면 된다.

order by 기본(email부분에 name을 넣을수있고 뒤에 desc로 내림차순을 볼수있다)
select * from users
order by email;

q.course_id별 '오늘의 다짐'에 달린 평균 like 개수 구해보기
a.select course_id, avg(likes) from checkins
group by course_id;

별칭기능:alias(~as cnt)
예시)select payment_method, count() as cnt from orders o
where o.course_title = '앱개발 종합반'
group by payment_method
라고하면 결과값에 들어갔던 (
)대신 cnt라고 깔끔하게 나온다.

q.네이버 이메일을 사용하여 앱개발 종합반을 신청한 주문의 결제수단별 주문건수 세어보기
a.SELECT payment_method,COUNT(*) FROM orders
where email like "%naver.com"
and course_title = "앱개발 종합반"
group by payment_method

profile
자신감을 얻고 싶다.

0개의 댓글