본문 바로가기

Data/SQL

(14)
SQL 실무 : 나이, 연령대, 연령대별 회원수 계산 오늘 살펴볼 내용은 CRM 업무를 담당하거나 고객 데이터를 분석해야 할 때 자주 쓰이는 고객의 나이, 연령대, 연령대별 인원 계산입니다. 기본적인 SQL 문법과 간단한 서브쿼리를 이용하면 매우 간단하게 계산할 수 있고, 연령대별 분석은 실무에서 매우 자주 사용되는 만큼 알아두면 굉장히 유익할 것 입니다. 아래와 같이 고객의 ID, 성별, 생년월일, 회원가입일, 가입경로의 정보가 포함되어 있는 고객 데이터가 있다고 가정하겠습니다. 우리는 여기서 생년월일(birth_date) 컬럼을 이용해 나이, 연령대 분석을 해보도록 하겠습니다. 고객 데이터(예제) user_id sex birth_date register_date register_device U001 M 1977-06-17 2016-10-01 pc U00..
SQL 실무 : 매출 누계, 전년동기 증감율(YoY) 계산 오늘 살펴볼 내용은 매출 데이터를 SQL로 어떻게 핸들링하는지에 대한 부분 입니다. 사실 회사에서는 SQL, Python 등과 같은 프로그래밍 언어가 아닌 엑셀을 이용해서도 매출 관련 데이터 지표를 관리하고 분석을 많이 하곤 합니다. 그렇지만 엑셀의 경우 분석할 수 있는 데이터의 양이 제한되어 있기 때문에 대용량 데이터를 분석할 때 적합하지 못합니다. 그렇기 때문에 지금부터는 SQL을 활용해 데이터를 추출하는 방법을 알아보도록 하겠습니다. 오늘 우리가 살펴볼 주제는 다음과 같습니다. 1. 매출 누계 구하기 2. 월별 매출의 전년대비 증감율(YoY) 구하기 해당 주제들은 실제 현업에서 매출 데이터를 관리하는 담당자라면 굉장히 자주 마주치게 되는 데이터이니 유심히 봐주시기 바랍니다! 1. 매출 누계 구하기 ..
SQL 고급 : 집계 함수 vs. 윈도우 함수 비교 SQL을 공부하면서 처음 윈도우 함수(Window Fuctions)를 접했을 때 기존의 집계함수(Aggregate Functions)와 비슷해서 헷갈렸던 적이 있습니다. 그럼 서로 비슷해 보이는 집계함수와 윈도우 함수, 언제 어떻게 사용하는걸까요? 이 글에서는 집계함수와 윈도우 함수에 관련된 실무 예제를 활용해 살펴보면서 데이터 분석을 할 때 두 함수가 어떻게 사용되는지 알아보도록 하겠습니다. 먼저, 집계함수와 윈도우 함수에 대해 알아보기에 앞서 여러분이 가상의 이커머스 회사 '로켓마트'의 데이터 지표를 관리하고 분석하는 담당자가 되었다고 가정해보겠습니다. 유관부서에서 다음과 같은 데이터를 추출해달라고 요청이 들어왔을 때, 여러분은 어떤 함수를 이용해 데이터를 추출하면 될까요? 1. 연도별, 카테고리별 ..
SQL vs. Pandas 비교 (2) - JOIN, PIVOT, WINDOW FUNCTIONS 지난 글에 이어서 SQL의 쿼리문과 Pandas 코드를 계속 비교해보도록 하겠습니다. 이번에는 조금 심화 레벨의 JOIN, PIVOT, WINDOW FUNCTIONS 에 대해 알아보겠습니다. 지난 글에서는 NBA 선수 연봉 정보 테이블을 예시로 했었다면, 이번에는 렌터카 회사의 예약 데이터를 활용할 예정입니다. 지금부터 여러분은 렌터카 회사의 데이터 분석을 담당하고 있는 직원이고, 다음과 같이 예약정보(Reservation), 고객정보(Customer) 라는 가상의 테이블이 있다고 해보겠습니다. 데이터는 2016년 4월에서 5월까지 렌터카 예약정보를 가지고 있습니다. 예약 정보(Reservation) Seq Region System Customer_id Car_name Start_date Start_ti..
SQL vs. Pandas 비교 (1) - SELECT, WHERE, GROUP BY, LIMIT 처음 SQL을 공부하면서 Python의 Pandas 라이브러리와 많이 비슷하다는 생각이 들어 동일한 결과값을 출력하게 끔 하는 SQL 쿼리문과 Pandas 코드를 비교해보고자 합니다. 비교를 위해 아래 나와 있는 NBA 선수들의 연봉 정보를 가지고 SELECT, FROM, WHERE, GROUP BY, LIMIT 등 SQL 문법을 Pandas로 어떻게 구현하는지 함께 보도록 하겠습니다. [SELECT] 선수, 연봉 정보 SQL SELECT player, salary FROM players; Pandas players[['player', 'salary']] [WHERE] 포지션이 센터인 선수의 팀명과 연봉 정보 SQL SELECT team, player, salary, position FROM player..
SQL 고급 : 서브쿼리(Sub-query) 1. 서브쿼리 1) 개요 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문 메인쿼리 기준으로 여러 개의 서브 쿼리 사용 가능 서브쿼리는 하나의 SELECT 문장으로, 괄호로 둘러쌓인 형태 2) 분류(메인쿼리와 연관성 여부) Un-Correlated(비연관) 서브쿼리 Correlated(연관) 서브쿼리 3) 종류 스칼라 서브쿼리 인라인 뷰 중첩 서브쿼리(Nested Subquery) 4) 사용 시 주의사항 서브쿼리 사용 시 괄호로 감싸서 사용 서브쿼리는 단일 행(Single Row) 또는 복수 행(Multiple Row) 비교 연산자와 함께 사용 가능 단일 행 비교 연산자는 서브쿼리의 결과가 반드시 1건 이하이여야 하고 복수 행 비교 연산자는 서브쿼리의 결과 건수와 상관 없음 서브쿼리에서는 ORDER ..