엑셀보다 쉬운 SQL - 2주차

박지환·2022년 4월 11일
0

엑셀보다 쉬운 SQL

목록 보기
2/5

Group by, Order by 익히기

[수업 목표]

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

-> 동일한 범주의 데이터를 묶어주는 Group by
-> 깔끔하게 데이터를 정렬해보자: Order by

  1. Group by, Order by 사용해보기

1) Group by 기능

a) 동일한 범주의 개수 구하기
*count(*)를 사용
```
select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명
group by 범주별로 세어주고 싶은 필드명;
```

b) 동일한 범주에서의 최솟값, 최솟값, 평균, 합계
count(*) 자리에 min(최솟값을 알고 싶은 필드명) 또는 max(최댓값을 알고 싶은 필드명), avg(평균값을 알고 싶은 필드명), sum(합계를 알고 싶은 필드명)

2) Order by 기능
-> 내림차순(desc), 오름차순(기본)

select * from checkins
order by likes desc;

3) Where와 Group by, Order by 함께 사용해보기

select payment_method, count(*) from orders
where course_title = "웹개발 종합반"
group by payment_method;
  1. SQL 쿼리가 실행되는 순서

쿼리가 실행되는 순서: from → where → group by → select → order by

select payment_method, count(*) from orders
where course_title = "웹개발 종합반"
group by payment_method;
  1. 이외 유용한 문법 배워보기
    -> 별칭 기능: Alias
    : 쿼리가 점점 길어지면서 종종 헷갈리는 일이 생길 수 있습니다.
    그래서 SQL은 Alias라는 별칭 기능을 지원합니다.

1) 기본

select * from orders o
where o.course_title = '앱개발 종합반'

2) as를 붙여서 별칭을 추가하는 것도 가능

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

3) 출력될 필드에 별칭을 붙이는 것도 가능

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

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

select payment_method, count(*) from orders
where email like '%naver.com' and course_title = '앱개발 종합반'
group by payment_method
  1. 마치며

이 기능만 잘 써도 단일테이블에서는 자료를 꽤나 유용하게 뽑아낼 수 있을 것 같다.
하지만 sql은 역시 join으로 여러테이블 자료를 가져와서 쓰는 게 아닐까?

profile
시작은 창대하나 끝은 미약하리라

0개의 댓글

관련 채용 정보