본문 바로가기

Data

(21)
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..
[Python] Escape sequence(이스케이프 시퀀스) 이스케이프 시퀀스 이름 내용 \n 줄바꿈(Line feed) \' 작은따옴표(Single quote) \" 큰따옴표(Double quote) \\ \(백슬래시) \n (줄바꿈) # Hello World! 두 줄에 출력하기 '''이스케이프 시퀀스 미사용''' print("Hello") print("World!") # print를 계속 사용해야 하기 때문에 불필요한 코드 발생 多 '''이스케이프 시퀀스 사용''' print("Hello\nWorld!") # 글자가 많아지면 코드의 가독성이 떨어짐 print("Hello", "World!", sep="\n") '''docstring 활용''' print('''Hello World!''') # 가독성은 좋으나 프로그램 소스가 길어질 수 있음 Hello World..
SQL 고급 : 서브쿼리(Sub-query) 1. 서브쿼리 1) 개요 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문 메인쿼리 기준으로 여러 개의 서브 쿼리 사용 가능 서브쿼리는 하나의 SELECT 문장으로, 괄호로 둘러쌓인 형태 2) 분류(메인쿼리와 연관성 여부) Un-Correlated(비연관) 서브쿼리 Correlated(연관) 서브쿼리 3) 종류 스칼라 서브쿼리 인라인 뷰 중첩 서브쿼리(Nested Subquery) 4) 사용 시 주의사항 서브쿼리 사용 시 괄호로 감싸서 사용 서브쿼리는 단일 행(Single Row) 또는 복수 행(Multiple Row) 비교 연산자와 함께 사용 가능 단일 행 비교 연산자는 서브쿼리의 결과가 반드시 1건 이하이여야 하고 복수 행 비교 연산자는 서브쿼리의 결과 건수와 상관 없음 서브쿼리에서는 ORDER ..