SQL (3) group by, order by

이석영·2021년 4월 29일
0

SQL

목록 보기
3/6

groub by, order by

다음은 앱개발 종합반의 결제수단별 주문 건수를 출력하기위한 명령어로 실제 작성한 순서 흐름대로 적어보겠다.
1. orders 테이블의 모든 필드 검색 : select * from orders
2. 코스가 앱개발 종합반인 결과만 필터링 : where course_title = '앱개발 종합반'
3. 결재수단별로 결과 그룹핑 : group by payment_method
4. 보고자하는 출력 필드 지정(결재수단별 주문 건수 포함) : select payment_method, course_tile, count(*) from orders
5. 주문건수가 높은순(내림차순)으로 정렬 : order by count(*) desc
참고로 order by 명령어는 오름차순이 default이므로 위 5번에서는 내림차순 결과를 위해 desc를 추가했다. 또한 숫자필드뿐만아니라 문자와 날짜,시간 등의 필드 역시 order by명령어를 통해 정렬가능하다.

avg, min, max, round

SQL문으로 평균, 최소, 최대 값 역시 쉽게 구해볼 수 있다.
만약 checkin 테이블에서 주차별 likes 수치의 평균을 구하려면 다음과 같다.
round(avg(likes),3)은 소수점 3째자리까지 구한다는 것을 의미하며 만약 3대신 0으로 지정하면 반올림한 값이 나온다.

최소값을 구하려면 avg대신 min을 입력하고 만약 최대값을 구하려면 max를 입력하면 된다.

별칭 : alias

별칭은 쿼리가 너무 길어질 때 문법을 간략히 하는데 유용하다.
아래 명령어에서 2가지 별칭을 이용했다.
1. orders 테이블을 o 로 지정하여 course_title 필드가 어느 테이블에 존재하는지 알기쉽게 표현
2. count(*)를 as cnt로 지정하여 보기 좋게, 깔끔하게 표현하였다.

profile
원하는 대로 살자

0개의 댓글