본문 바로가기

내배단_SQL

내배단 SQL 2주차 개발일지

우리는 데이터에서 무엇이 궁금할까?

 

통계: 최대 / 최소 / 평균 / 개수

데이터 분석의 목적: 쌓여있는 날것의 데이터 → 의미를 갖는 '정보'로의 변환

  • 데이터베이스 테이블에 저장된 데이터: 쌓여있는 날것의 데이터
  • 가장 많은 Like를 받은 사람의 이름, 전체 신청자수, 평균 연령: 의미있는 '정보'

더 나아가면? '범주 (category)' 각각의 정보가 궁금할 수 있습니다.

예) 과목별 신청자 평균 연령, 과목별 신청자수, 성씨별 회원수 등

 

통계 구하기: 기존 방법의 한계

 

동일한 범주의 데이터를 묶어주는 Group by

Group by란?

동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것을 의미해요.

Group by를 이용하면 1) 같은 성씨의 데이터를 하나로 묶고 2) 각 성씨의 회원수를 구할 수 있어요.

 

  1. from users              : users 테이블에서 데이터를 불러옵니다
  2. group by name        : name이라는 필드에서 동일한 값을 갖는 데이터를 하나로 합쳐줍니다
  3. select name, count()  : 이름과 count()를 출력해 주는데, 여기서 count(*)는 group by로 합쳐진 데이터의 개수를 세어주는 것입니다!

동일한 범주의 개수 구하기

그룹이름, 까먹지 말기

 

동일한 범주에서의 최소값/최대값/평균값 구하기

평균값 반올림하여 소수점 n번째까지 표기

 

 

 

깔끔하게 데이터를 정렬해보자: Order by

desc =  내림차순 / asc or 아무것도 없으면 오름차순
like 를 많이 받은 순서(내림차순)대로 '오늘의 다짐' 출력

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

  1. from users                 : users 테이블 데이터 전체를 가져옵니다.
  2. group by name           : users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐줍니다.
  3. select name, count(*)    : name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어줍니다.
  4. 예) 이**, 이**, 김**, 김**, 박** 이렇게 데이터가 있었다면, 이는 2개, 김은 2개, 박**은 1개겠죠!
  5. order by count(*)         : 합쳐진 데이터의 개수에 따라 오름차순으로 정렬해줍니다.

 

웹개발 종합반의 결제수단별 주문건수 세어보기 (오름차순)

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

 

  1. from orders                                  : users 테이블 데이터 전체를 가져옵니다.
  2. where course_title = "웹개발 종합반"  : 웹개발 종합반 데이터만 남겨줍니다.
  3. group by payment_method              : 같은 payment_method을 갖는 데이터를 합쳐줍니다.
  4. select payment_method, count(*)       : payment_method에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어줍니다.
  5. 예) CARD, CARD, kakaopay 이렇게 데이터가 있었다면, CARD는 2개, kakaopay는 1개겠죠!

만약 order by가 추가된다면? order by는 맨 나중에 실행됩니다! (결과물을 정렬해주는 것이기 때문!)

 

 

Order by, Group by 같이 연습해보기

12) Group by 연습하기

[퀴즈] 앱개발 종합반의 결제수단별 주문건수 세어보기
[퀴즈] Gmail 을 사용하는 성씨별 회원수 세어보기
[퀴즈] course_id별 '오늘의 다짐'에 달린 평균 like 개수 구해보기 (반올림 소수첫째자리)

 

[꿀팁] 이렇게 쿼리를 작성하면 편해요!

1) show tables로 어떤 테이블이 있는지 살펴보기

2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 limit 10 쿼리 날려보기

3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기

4) 테이블을 찾았다! 범주를 나눠서 보고싶은 필드를 찾기

5) 범주별로 통계를 보고싶은 필드를 찾기

6) SQL 쿼리 작성하기!

 

 

별칭 기능: Alias

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

앱개발 종합반의 결제수단별 수량 확인하기

 

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

 

'내배단_SQL' 카테고리의 다른 글

SQL 문법 총정리  (0) 2022.04.17
내배단 SQL 4주차 개발일지  (0) 2022.04.17
내배단 SQL 3주차 개발일지  (0) 2022.04.16
내배단 SQL 1주차 개발일지  (0) 2022.04.13