[개발일지] [왕초보] 엑셀보다 쉬운, SQL 2주차 개발일지
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) 꿀팁
show table
을 통해 어떤 table이 있는지 간략히 확인할 수 있다.limit
을 통해 처음의 몇 행만 확인할 수 있다.
ex)select * from mytab limit 10
: 처음 10행만 보기- 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. 느낀점
- 빨리빨리 배우고 싶다는 욕심이 든다.
- 잊지 않도록 복습을 많이 해야겠다.
댓글남기기