본문 바로가기

허씨의 편람/자기개발

[개발일지] SQL 입문_2주차-1

1. Group by: 필드 그룹핑 해주는 문법

 

SELECT name, count(*) FROM  users
group by name 

⁕햇갈릴 수 있으므로, 그룹핑하고 추출값 선정하는 방식으로 진행하자!

 

  1) 그룹핑 진행

      SELECT * FROM  users
      group by name

 

  2) SELECT로 추출값 선정

      SELECT name, count(*) FROM  users
      group by name 

 

 1-1. Group by 심화

  1) 동일한 범주의 값 구하기

      SELECT week,  count(likes) FROM checkins
      group by week

      ▶Where 절로 검증

      SLECT * FROM checkins

      where week = 1

 

  2) 최소값 구하기: min()

      SELECT week, min(likes) FROM checkins
      group by week

 

  3) 최대값 구하기: max()

      SELECT week, max(likes) FROM checkins
      group by week

 

  4) 평균값 구하기: avg()

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

      ▶소숫점 조절하고 싶다면 (반올림): ROUND

      SELECT week, round(avg(likes),1) FROM checkins
      group by week

      ⁕round(avg(like)): 소숫점 없음(반올림) / round(avg(like),1): 소숫점 1자리 미만 반올림

 

  5) 합계 구하기: sum()

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

 

2. 별칭 선언하기

  1) 테이블 별칭 선언하기

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

 

  2) 필드명 수정하기: as

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

 

3. 2주차 퀴즈

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

  A. select → where(필요 필드 잘라내기) → group by → select (추출값 정하기) → order by (desc, asc)

     SELECT payment_method, count(*) FROM orders
     WHERE email like '%naver%' and course_title = '앱개발 종합반'
     group by payment_method
     order by count(*) DESC 

     ⁕결과값이 예쁘게 보이기 위해선 count(*) as 합계