아래 사이트에서 본인의 운영체제에 맞는 PostgreSQL을 다운로드하여 설치한다.https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 위 경우만 사진과 같은 상태로 설정하였고, 나머지는 모
us_retail_sales.csv 파일을 다운로드 받는다.pdAdmin 4 프로그램을 실행하여 테이블을 생성한다.retail_sales 테이블을 생성하고, 다운 받은 데이터 파일의 값들을 복사하여 집어 넣는다.
앞서 생성한 retail_sales 테이블을 활용하여 분석한다.비즈니스 종류가 Retail and food services sales, total인 경우의 sales_month 컬럼만 조회한다.비즈니스 종류가 Retail and food services sales, t
연도와 비즈니스 종류에 따라 그루핑한 후 서점, 굿즈, 취미 및 게임 상점에 해당하는 값들의 연도, 종류, 매출의 합계를 살펴본다.남성과 여성의 옷가게의 매출을 살펴본다.연도별, 남성과 여성 옷 가게별로 매출 합계를 살펴본다.연도별로 여성 옷가게일 경우의 매출합계와 남
중간 과정이 살짝쿵 헷갈려져서 쿼리를 뜯어보았다. 아래는 내가 이해해가는 과정이다. 틀린 부분이 있다면 피드백을 남겨주세요!<서브쿼리>동일한 retail_sales 테이블을 SELF JOIN 한다.JOIN 기준은 sales_month(날짜)가 같은 기준으로 한다.
문득 궁금해서 아래 쿼리를 서브쿼리와 WITH 구문을 이용하여 실행해보니 다음과 같은 실행 시간이 소요됐다. 따라서 FROM절에 서브쿼리를 많이 사용하거나 긴 쿼리를 작성하게 된다면 소요되는 시간이나 눈으로 보기에 복잡할 수 있으므로 WITH를 사용한다.WITH : 0
해당 쿼리 또한 헷갈려서 과정을 하나씩 이해해보려고 했다.retail_sales 테이블을 SELF JOIN한다.JOIN 조건은 kind_of_business가 같아야 한다. (다른 컬럼들의 값은 일치하지 않는다는 것에 주의)B.sales_month BETWEEN A.s
date_dim 데이터를 살펴보자.date_dim 테이블의 날짜 컬럼인 date 범위는 다음과 같다.retail_sales 테이블에서 Women store와 1월 7월에 해당하는 날짜와 매출을 조회한다.date_dim 테이블과 위에서 조회한 테이블을 JOIN 한다.JO
누적값 계산
LAG() 함수를 사용하여 이전 날짜와 이전 날짜의 매출 컬럼을 생성한다. 이는 현재와 이전의 매출을 비교하기 위함이다.위에서 생성한 이전 매출 컬럼을 활용하여 현재와 이전의 매출을 비교한다. 이전 매출에 비해 현재 매출에 대한 비율을 계산한다.날짜 컬럼에서 연도만 추
구간 비교 - 작년과 올해 비교
Book stores에 해당하는 데이터만 조회한다.LAG 함수를 사용하여 같은 달에 해당하는 현재, 1년 전, 2년 전, 3년 전 매출 컬럼을 생성한다.ex) 95년도 1월, 94년도 1월, 93년도 1월, 92년도 1월위에서 생성한 쿼리를 FROM절에 서브쿼리로 사용
미국 의회 입법가 데이터셋을 사용한다.여러번 임기한 사람들이 있다.아이디별로 가장 처음 임기했던 기간을 조회한다.아이디별로 여러번 임기한 사람들이 있기 때문에 가장 처음 임기를 시작한 날짜를 계산한 것이다.위 쿼리를 FROM절에 서브쿼리로 사용한다.ID를 기준으로 JO
위 쿼리를 서브쿼리로 사용한다.위 쿼리와 legislators_terms 테이블을 ID를 기준으로 JOIN 한다.JOIN한 테이블과 date_dim테이블을 JOIN 한다.date_dim 테이블의 날짜 컬럼을 임기 시작과 끝나는 날짜 사이를 기준으로 JOIN 한다.그리고
이전 게시글에 LEFT JOIN을 한 이유에 대해 설명하지 않은 것 같아서 작성해보려고 한다. 만약 임기 시작 날짜와 끝나는 날짜가 다음과 같다고 가정한다.term_start : 2018-01-03term_end : 2018-11-06date_dim 테이블의 date
앞서 진행한 JOIN 조건들과 동일하되, legislators 테이블을 추가로 JOIN 한다. 날짜와 state로 살펴본 것과 달리 성별에 따른 코호트 숫자를 알아본다.A 테이블의 first_term이 1917-01-01부터 1999-12-31까지인 경우만 코호트 숫자
위 쿼리를 서브쿼리로 사용한다.이전 게시글에서와 마찬가지로 여러 테이블을 JOIN 한다.(상세한 JOIN 조건들에 대해서는 이전 글들을 참고)A 테이블에서 계산한 first_term이 1917-01-01부터 1999-12-31까지에 해당하는 테이블만을 조회한다.위 테이
이전에는 각 id별 첫 번째 임기 시작 날짜를 기준으로 코호트를 정의했다. 이번에는 처음 날짜 대신 다른 날짜를 기준으로 코흐트를 정의한다.term_start가 2000-12-31보다 작고term_end가 2000-01-01보다 큰term_start가 12000-12-
1년부터 20년까지 terms을 생성하고 JOIN한다.각 세기별 고유한 id의 개수를 센다.각 terms에 해당하는 임기에 대해 고유한 id의 개수를 센다.비율을 계산한다.
위 쿼리를 서브쿼리로 사용한다.century별 id를 COUNT 한다.
id별로 term sart를 오름차순 했을 때 첫 번째 term type값id별로 가장 작은 term start 날짜id별로 가장 작은 term start 날짜 + 10년legislators_term 테이블 JOINB 테이블의 term start가 A 테이블의 firs
UFO 목격 보고 데이터 셋을 사용하여 분석한다.sighting_report 글자 수대로 그루핑하였을 때 각각에 해당하는 record 수를 계산한다.
(Entered를 기준으로 자른 첫 번째 문자열을 또 다시 Occurred : 를 기준으로 잘라서 두 번째 문자열을 가져온 것이다.아래 사진처럼 다른 형식과는 다르게 Reported가 붙은 긴 문자열이 보인다. 14번째 행의 문자열도 다른 형식과 마찬가지로 처리 되었
Shape만을 추출해낸다.문자의 첫 글자를 대문자로 변환한다.Duration을 추출한다.앞 뒤 공백을 제거한다.
LIKE는 대소문자를 구분하며, ILIKE는 대소문자를 구분하지 않는다.첫 번째는 6231개, 두 번째는 6439개로 다른 개수가 나타났다. 첫 번째의 경우 Wife와 wife가 서로 다른 글자로 인식되기 때문이다. 대소문자 상관 없이 Wife나 wife 글자가 들어간
UFO를 목격한 설명이 담긴 description 컬럼에서 각 문장의 첫 단어가 색상으로 시작하는 값들만을 조회한다.문장의 첫 글자가 어느 종류에 속하는지를 구별한 후 개수를 센다.
PostgreSQL은 정규식 일치의 경우 ~를 사용하며 정규식 형식은 POSIX 정규식 표준을 따른다. ~는 similar to를 의미한다.0~9 숫자 중 하나 이상의 숫자를 포함한 경우light, light, lights, light, lights, 문자가 포함된 경