강의 개요
- 데이터분석가의 기본 역량인 SQL의 기초 및 응용 개념 학습
- 다양한 데이터셋을 활용한 문제 풀이
- 과제
커리큘럼
1회차
- DATA, DB, QUERY, SQL이란?
- SQL의 작성순서 및 작동순서
2회차
- SQL 기본구조: SELECT, FROM
- SQL 조건문: WHERE
- SQL 조건문: CASE WHEN
- 조건문에 사용되는 연산자
3회차
- SQL 집계함수: AVG, MIN, MAX, MEDIAN, SUM, COUNT
- SQL 그룹화: GROUP BY, HAVING(+WHERE 과 차이점)
- SQL 내부 중첩: SUB QUERY
4, 5회차
- 테이블 결합: UNION
- 테이블 결합: JOIN
1회차
목표
- 데이터 분석가가 하는 일 알아보기
- 캠프를 통해 배우는 내용 이해하기
- SQL 알아보기
- DATA, DB, QUERY, SQL 기본 개념 숙지하기
1. 데이터 분석가는 어떤 일을 하나요?
- 주요 업무
- 현 상태를 "숫자"로 확인 후 문제 정의 및 해결 방안 제시하는 역할 담당 → 최종적으로는 비즈니스 개선에 도움이 되는 중요한 역할 담당
- 데이터 추출
- 타 팀으로부터 요청받은 내용을 기반으로 데이터를 추출하여 유관부서에 공유
- 데이터 가공
- SQL, Python 을 통해 데이터를 추출한 뒤, 데이터를 전처리(이상치, 결측치 처리)하고 정합성을 검증
- 가설 검증, 군집분석, 모델생성, 회귀분석, 상관관계분석, 퍼널분석 등을 진행
- 머신러닝, 딥러닝을 통해 새로운 모델을 개발
- 데이터 시각화
- 가공한 데이터를 시각화
(예) tableau, Quicksight, Looker Studio etc.
- 인사이트 도출
- 분석보고서를 작성하여, 데이터를 통해 현 시점의 문제제기와 해결방안을 제시
- 타 팀에게 이를 공유하여, 비즈니스 전략 수립에 기여
- 데이터 분석가는 "떠먹여 주는" 사람
- 숫자로 던져주고 끝이 아니라 '시각화'하여 의견 제출까지가 업무
- 데이터 분석 역량이 가지는 이점
- 전문성을 더해주는 연결고리
- 기업의 목표 == 이익창출
- 기업에서는 KPI 달성을 위해 다양한 실험을 진행하고, 이러한 시험의 결과를 확인하고 비교할 수 있게 해주는 영역이 바로 데이터 분석 → 마케팅, 기획 직군과 긴밀한 연결
- 내가 생각한 것을 검증하고 이를 설득력 있게 전달할 수 있게 됨
- 데이터 엔지니어, 데이터 사이언티스트, 데이터 분석가 차이
- 데이터 엔지니어
- 데이터 분석가
- 데이터 과학자
2. 본 캠프를 통해 우리가 가져갈 수 있는 것은?
3. 가장 기본! SQL입니다.
4. DATA, DB, QUERY, SQL 기본 개념
데이터
- 문자, 숫자, 이미지, 영상, 음성 형태의 정보
DB(DataBase)
DBMS(DataBase Management System)
- DB에 접근하기 위해 설치하는 소프트웨어
- DBMS: DB에 규칙성 및 정합성을 부여하여, 데이터 등록/정리/검색이 용이하도록 하는 소프트웨어 시스템
Software system
QUERY
- DB에 접근하기 위한 질의
- DB에서 정보를 요청하고 결과를 얻기 위해 사용하는 언어
- SQL은 QUERY 중 하나
- SQL == 관계형 데이터베이스 관리 시스템에서 데이터를 관리하고 처리하기 위해 표준화된 언어
5. SQL 작동순서 및 작성순서
작동 순서
- SQL이 내부적으로 인지하고 작동하는 순서
- 작성 순서와 다름
- FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY
- 어디서 → 어떤 조건 → 테이블 몇 개 하나로 → 어떤 거 볼 건지 → 기준(그룹) → 기준2 → 선택한 것만 → 중복 없이 → 특정 순서로
- 테이블을 확인한 후, 조인 조건을 확인하고, 조인 후 추출 조건을 확인
- 그 뒤로 데이터 그룹화, 추출, 중복제거 후 마지막으로 데이터를 정렬
- 작동 순서를 이해해야 나중에 구문 작성 후 에러 발생했을 때 문제를 빨리 해결할 수 있음
작성 순서
SELECT
A.REST_ID
, REST_NAME
, FOOD_TYPE
, FAVORITES
, ADDRESS
, ROUND(AVG(REVIEW_SCORE), 2) SCORE
FROM
REST_INFO A
INNER JOIN REST_REVIEW B
ON A.REST_ID = B.REST_ID
WHERE
A.ADDRESS LIKE '서울%'
GROUP BY
A.REST_ID
ORDER BY
SCORE DESC
, FAVORITES DESC;