목록분류 전체보기 (90)
오랑우탄의 반란
윈도우 함수 총정리 2 에서는 윈도우 프레임 내의 범위 지정을 다룰 예정입니다.윈도우 함수의 기본 개념, 집계 및 순위 매기기 활용은 윈도우 함수 총정리 1을 참고해주세요. 범위지정윈도우 프레임 내에서의 범위 지정 또한 중요한 부분입니다. 예를 들어 특정 기간에 대한 금액의 누적합을 구하고 싶은 경우 활용할 수 있겠지요? 기본 문법기본적인 윈도우 함수의 OVER 안에 ROWS/RANGE BETWEEN이 추가됩니다. SELECT 집계함수() OVER (PARTITION BY {컬럼명1}, ORDER BY {컬럼명2} ROWS|RANGE BETWEEN {시작} AND {끝}) FROM {테이블};ROW는 현재행 기준 전후 N개의 물리적인 행 단위의 프레임 지정RANGE는 논리적인 값을 범위로 지정, 숫자와 ..
윈도우 함수 총정리 1 에서는 윈도우 함수의 기본적 사용부터 집계, 순위 매기기 등의 활용까지 살펴볼 예정입니다. 윈도우 함수 WINDOW FUNCTION윈도우 함수는 서브쿼리처럼 쓰이지만 서브쿼리보다 간단하고 가동성이 높은 특징을 가졌습니다.특히 이동평균, 누적합계, 순위 계산에 유용하게 쓰입니다. 기본 문법SELECT 집계함수() OVER (PARTITION BY {컬럼명1}, ORDER BY {컬럼명2}) FROM {테이블}; PARTITION BY는 GROUP BY 와 동일한 기능으로 특정 기준으로 윈도우함수 내에서 분류ORDER BY는 윈도우함수 내에서 정렬될 기준 아래 기본적인 사용 예시를 보겠습니다. 전체 직원을 대상으로 월급을 많이 받는 순위 매기기SELECT employee_id, d..
오늘은 디비버에서 테이블을 생성하고, 내용을 변경하고, 마지막으로 테이블끼리 키로 연결해주는 법을 살펴보겠습니다. 테이블 생성 및 삭제 테이블 생성, 데이터 삽입, 그리고 삭제는 단일 실행만 가능합니다. CREATECREATE TABLE {테이블명} ({컬럼명1} {자료형} PRIMARY KEY # 일반적으로 PK가 첫 번째옴{컬럼명2} {자료형} {제약조건} # 서로 관계를 가지고 있는 RDB 특성상 제약조건이 필요할때가 있음); 테이블을 생성할 때는 데이터 무결성을 보장하기 위해 아래와 같은 제약 조건을 추가해야 합니다. UNIQUE해당 열에 중복된 값 입력 불가NOT NULLNULL 값 허용 안됨PRIMARY KEY기본키로 설정 (UNIQUE + NOT NULL)FOREIGN KEY다른 ..
오늘은 MYSQL 데이터베이스 구조, 데이터 모델링, 그리고 ERD 관련해서 간단하게 살펴보겠습니다. MySQL DB 구조데이터베이스를 직접 액세스하기 위해 SQL 을 사용하는데요, 이때 흔히 사용하는 데이터 조작 언어 (select) 외에도 여러 종류의 구문이 존재합니다. 데이터 조작DML (Data Manipulation Language)데이터 조회, 삽입, 변경, 삭제SELECT, INSERT, UPDATE, DELETE데이터 정의DDL (Data Definition Language)테이블 생성, 삭제, 수정CREATE, DROP, ALTER데이터 관리DCL (Data Control Language)데이터 접근권한 관리GRANT, REVOKE정보 조회테이블 조회, 테이블 속성 조회SHOW, DES..
오늘도 오랑이는 문제를 풉니다. 1321. Restaurant Growth 풀이 과정주어진 날짜 중 7일에 대한 합과 평균을 구해야 하는 문제입니다. 윈도우 함수를 사용해 범위를 지정해서 특정 날짜 구간에 대해 집계를 할 수 있는데요, range로 날짜 범위를 구할 수 있습니다. 이때 interval 은 datatype 이 date 인 경우에만 사용 가능하다는 점을 주의해야 합니다. sum(amount) over (order by visited_on range between interval '6' day preceding and current row) as amount 해당 조건을 from 서브쿼리로 넣어주면 7일에 대한 합과 평균을 구할 수 있습니다. 이때 행이 중복으로 들어가지 않게 group by ..
pandas 에서 자주 사용되는 value_counts() 함수에 대해 알아보겠습니다. ParametersSeries.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)Series.value_counts()normalize: 값의 상대적 빈도로 표시sort: count 정렬 여부ascending: 내름차순으로 count 정렬 bins: 연속형 자료를 이산 가격으로 bindropna: NaN 값 미포함 여부 우선 연습을 위한 데이터프레임을 생성해줍니다. data = pd.DataFrame({ 'Name':['Alice','Bob','Charlie','Rachel','James','Pedro','Em..
기초통계 시리즈의 마지막으로 가설검정의 주의점에 대해 간단하게 짚고 넘어가겠습니다. 재현 가능성, p해킹, 선택적 보고동일 연구나 실험을 반복했을 때 결과가 일관되게 재현이 가능해야 하고, 이는 연구의 신뢰성을 높여줌.하지만 0.05 수준의 p값에 대해 가설검정의 잘못된 사용이 낮은 재현성으로 이어진다는 문제가 발생하고 있다고 함 0.05라는 것은 20번 중에 1번은 귀무가설이 옳을 수 있음에도 이것이 기각될 수 있다는 얘기인데, 이런 오류를 피하기 위해 데이터 모수를 늘리는 방향이 제안됨p해킹이란 p값을 인위적으로 낮추고자 데이터 분석을 반복하거나, 유의미한 결과를 얻기 위해 분석을 반복하는 것결과에 따라 가설을 변경하거나 데이터 개수를 늘려서 결과에 이를 맞추려고 하면 안됨유의미한 결과, 유의미하지..
이전 포스트에 이어 몇 가지 상관관계 종류를 살펴보겠습니다. 피어슨 상관계수두 연속형 변수 간의 선형 관계 측정절대값이 1에 가까울수록 높은 상관관계, 0은 선형 관계가 없음을 의미 import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsfrom scipy.stats import pearsonr# 예시 데이터 생성np.random.seed(0)study_hours = np.random.rand(100) * 10exam_scores = 3 * study_hours + np.random.randn(100) * 5# 데이터프레임 생성df = pd.DataFrame({'Study Hours': study_h..