TIL 2021.07.20 | (SQL) Group by & Order by
제가 SQL을 다루는 것이 아직 많이 서툽니다. 틀린 점이나 개선해야할 점을 남겨주시는 것은 언제나 환영입니다. 🙏
● 여름방학 SQL 공부하기
SQL 이론 학습을 위해 SQLD 공부 중 → 9월 中 SQLD 자격 취득이 목표
SQL 학습을 위해 온라인 강의 수강 중: 스파르타 코딩클럽
TIL 2021.07.20 start!
1. 범주의 통계를 내주는 Group by
1) Group by 란?
▶동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것
▶'~별로 몇 명'
select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명 group by 범주별로 세어주고 싶은 필드명;
▶쿼리 실행되는 순서 : from → group by → select
▶쿼리 작성시 순서:
#1번
select * from users
group by name;
#2번 (완성)
select name, count(*) from users
group by name;
▶숫자, 문자열, 시간 모두 정렬 가능!
2) 통계값
▶최소값: min(필드값)
select 범주가 담긴 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
▶최댓값: max(필드값)
select 범주가 담긴 필드명, max(최댓값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
▶최댓값: avg(필드값)
select 범주가 담긴 필드명, avg(평균값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
▶합계: sum(필드값)
select 범주가 담긴 필드명, sum(합계를 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
2. 깔끔하게 정렬해주는 order by
1) order by 사용법
select name, count(*) from users group by name order by count(*);
2) 오름차순, 내림차순
▶오름차순: 작성하지 않아도 됨. (기본설정값)
▶내림차순: desc
select name, count(*) from users
group by name
order by count(*) desc;
▶쿼리 실행되는 순서 : from → group by → select → order by
3. Where절과 함께 쓰는 Group by, Order by
1) Where절 위치
#예시
select payment_method, count(*) from orders
where course_title = "웹개발 종합반"
group by payment_method;
▶group by와 select 사이에 where로 조건을 넣어주면 끝!
2) 쿼리 실행 순서
from → where → group by → select
4. 오늘의 연습💛
select name, count(*) from users
group by name;
select week, count(*) from checkins
group by week;
select week, min(likes) from checkins
group by week;
select week, max(likes) from checkins
group by week;
select week, avg(likes) from checkins
group by week;
select week, round(avg(likes),2) from checkins group by week; #round → 자릿수
select week, sum(likes) from checkins
group by week;
select name, count(*) from users
group by name
order by count(*) desc;
#퀴즈1. 앱개발 종합반의 결제수단별 주문건수 세어보기
select payment_method, count(*) from orders
where course_title = '앱개발 종합반'
group by payment_method;
#퀴즈2. Gmail을 사용하는 성씨별 회원수 세어보기
select name, count(*) from users
where email like '%gmail.com'
group by name;
#퀴즈3. course_id별 '오늘의 다짐'에 달린 평균 like 갯수 구해보기 +자릿수 나타내기
select course_id, ROUND(avg(likes),1) from checkins
group by course_id;
#숙제. 네이버 이메일을 사용하여 앱개발 종합반을
신청한 주문의 결제수단별 주문건수 세어보기
select payment_method, count(*) from orders
where email like '%naver.com' and course_title = '앱개발 종합반'
group by payment_method
숙제>>
5. 이외의 문법
1) 별칭 기능: Alias (알리아스)
쿼리가 점점 길어지면서 종종 헷갈리는 일이 생길 수 있음.
그래서 SQL은 Alias라는 별칭 기능을 지원.
❗o → orders 를 의미함❗
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
Author And Source
이 문제에 관하여(TIL 2021.07.20 | (SQL) Group by & Order by), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dkswldp95/TIL-2021.07.20-SQL-Group-by-Order-by저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)