SQL - 2주차(Group by, Order by)

최문성·2021년 12월 23일
0

SQL 강의내용 정리

목록 보기
2/4
post-thumbnail

1). Group by, Order by 의미

  • Group by 문법 해석 & 구조
    : 동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것

    select (범주가 담긴 필드명) from (테이블명)
    group by (범주가 담긴 필드명)

  • Order by 문법 해석 & 구조
    : 데이터를 오름/내림 차순으로 정렬할 때 사용 (오름 - ASC, 내림 - DESC)

    select * from (테이블명)
    order by (정렬의 기준이 될 필드명)

Tip. Order by의 경우 기본으로 오름차순으로 정렬된다.

2). Group by, Order by 실전 예시

  • 예시 1). 성씨별 회원수를 구해보세요 (Group by)
select name, count(*) from users
group by name;

❖ SQL 쿼리 실행 순서 : from → group by → select
1. from users: users 테이블 데이터 전체를 가져옵니다.
2. group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐줍니다.
3. select name, count(*): name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어줍니다.
예) 이, 이, 김, 김, 박 이렇게 데이터가 있었다면, 이는 2개, 김은 2개, 박은 1개겠죠!

  • 예시 2). Like를 많이 받은 순서대로 오늘의 다짐을 출력해라 (Order by)
select * from checkins
order by likes desc;

❖ SQL 쿼리 실행 순서 : from → group by → select → order by
순서를 반드시 지켜 Error 방지

3). Group by 와 자주쓰이는 문법

최댓값(max) / 최솟값(min) / 평균(avg) / 합계(sum) / 별칭(Alias)

  • 최댓값(max) 예시 → 평균, 합계 등 적용 방법은 동일

    Q. 주차별 '오늘의 다짐'의 좋아요 최댓값 구하기

select week, max(likes) from checkins
group by week;

select (범주가 담긴 필드명), max(최댓값을 알고 싶은 필드명) from (테이블명)
group by (범주가 담긴 필드명);


  • 별칭(Alias) 예시
    쿼리가 점점 길어지면서 종종 헷갈리는 일이 생길 수 있습니다. 그래서 SQL은 Alias라는 별칭 기능을 지원합니다.

    Orders O
    = Orders 테이블을 O로 약식 표기

    O.weeks
    = Orders 테이블 중 weeks 필드를 지칭


  • 위 내용들을 토대로 응용 문제

    Q. 웹개발 종합반의 결제수단별 주문건수 세어보기

select payment_method, count(*) from orders
where course_title = "웹개발 종합반"
group by payment_method

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

select payment_method, count(*) from orders
where email like '%naver.com'
and course_title = "앱개발 종합반"
group by payment_method;
profile
코딩하는 마케터로 거듭나기

0개의 댓글