1. 학습 요약

  • group by를 이용하여 그룹별로 통계를 낼 수 있다
  • order by를 이용하여 정렬할 수 있다.
  • Quiz, 숙제 등을 통해 내용 점검하기

2. 노트 정리

1) Group by 문법 이해하기

  • where 문을 써야 한다면 group by보다 선행되어야 한다.
  • 그룹으로 묶을 필드를 group이라고 할 때 쉽게 파악할 수 있도록 보통 다음과 같이 나타낸다.
    select group, count(*) from table로 나타낸다.
  • 평균값을 구할 때 자리수를 round()함수로 조정할 수 있다.
    `select group, avg()
-- 테이블 명을 mytab, 그룹으로 묶을 필드명을 group이라고 하자. 
-- 계산할 대상의 필드명을 var이라고 하자.

-- 1) group별로 개수 구하기
select group, count(*) from mytab
group by group;

-- 2) group별로 var의 최솟값 구하기  
select group, min(var) from mytab
group by group;

-- 3) group 별로 var의 최댓값 구하기  
select group, max(var) from mytab
group by group;

-- 4) group 별로 var의 평균값 구하기 (반올림해서 둘째자리까지 나타내자) 
select group, round(avg(var),2) from mytab
group by group;

2) Order by 문법 이해하기

  • 정렬은 마지막에 와야 한다.
  • default는 오름차순이다. 내림차순을 위해서는 마지막에 desc를 추가한다.
-- 테이블 명을 mytab, 필드명을 group이라고 하자. 
-- 계산할 대상의 필드명을 var이라고 하자.

-- 1) var에 대해 오름차순으로 정렬
select * from mytab
order by var;

-- 12) var에 대해 내림차순으로 정렬
select * from mytab
order by var;

3) 꿀팁

  1. show table을 통해 어떤 table이 있는지 간략히 확인할 수 있다.
  2. limit을 통해 처음의 몇 행만 확인할 수 있다.
    ex) select * from mytab limit 10 : 처음 10행만 보기
  3. Alias
    쿼리가 길어질 때 헷갈림을 방지하기 위해 별칭을 부여하는 기능
    -- 쿼리가 길어질 때 헷갈림을 방지하기 위해 별칭을 부여하는 기능
    -- 앞으로 orders를 o라고 지칭하겠다. count(*)를 cnt라고 이름짓겠다.
    select payment_method, count(*) as cnt from orders o 
    where o.course_title = '앱개발 종합반'
    group by payment_method
    

4) 실습(Homework)

1) 네이버 이메일을 사용하여 2) 앱개발 종합반을 신청한 주문의
3) 결제수단별 주문건수 세어보기
select payment_method, count(*) from orders
where email like '%naver.com' and course_title = '앱개발 종합반'
group by payment_method

3. 느낀점

  • 빨리빨리 배우고 싶다는 욕심이 든다.
  • 잊지 않도록 복습을 많이 해야겠다.

댓글남기기