반응형

postgresql 26

[SQL] 부정 논리 연산자(not in 등) 과 Null의 관계

실무에서 SQL쿼리를 사용하다 보면 Where 조건에 in과 not in 조건을 많이 사용할 텐데, not in(부정 논리 연산자)을 사용할때 주의하여야 한다. 그 이유는 NULL 때문이다.부정연산자부정 논리 연산자의 경우 위 표처럼 같지 않은 경우를 필터링할 때 사용하는 연산자이다.주로 not in이나 '', '!=' 등을 많이 사용한다. 부정 연산자와 Null의 관계결론부터 말하자면 부정 연산자를 사용하면 Null값이 모두 누락되게 된다.예시를 확인해보자 (샘플데이터 쿼리는 포스팅 최하단에 있음)SELECT * FROM orders WHERE 1=1 AND product_id not in (101,102)원래 의도는 product_id가 101,102인 것만 제외하고 조회하고 싶..

SQL & DB/PostgreSQL 2024.07.08

[PostgreSQL] Json(Jsonb) 컬럼 Query 방법 (->, ->>과 json_array_elements)

이번 포스팅에서는 PostgreSQL에서 Json(Jsonb)로 이루어진 컬럼을 Query 하는 방법을 알아봅니다. Json과 Jsonb의 차이Json의 특징입력된 텍스트의 원본을 그대로 저장 Json은 데이터를 불러올때 입력된 텍스트를 파싱해야하기 때문에 시간이 오래 걸림원본을 그대로 저장하기에 의미없는 공백등을 저장Json 객체 내의 key 순서가 보장되며, 중복된 key가 있는 경우도 중복되어 저장Jsonb의 특징Jsonb는 분해된 바이너리 형식으로 저장 (데이터를 정제하여 저장)Jsonb는 파싱할 필요가 없기 때문에 시간이 적게 걸림공백을 저장하지 않음객체들의 key순서를 보장하지 않으며, key를 중복해서 저장하지 않음. 입력에 중복된 key가 지정된 경우 마지막 값으로 대체객체들의 key순서를..

SQL & DB/PostgreSQL 2024.07.07

[PostgreSQL] generate_series을 활용한 날짜/시간 더미 데이터 생성 (월단위, 일단위, 시간단위)

날짜/시간 더미 데이터 생성이번 포스팅에서는 postgresql에서 generate_series 함수를 활용하여 날짜 및 시간 더미 데이터를 생성하는 방법을 알아봅니다.generate_seriesgenerate_series (start,stop[,step])일련의 숫자를 생성하는 함수. 시작과 끝, 증가 단계를 설정할 수 있음start : 시작 값입니다.stop : 시리즈의 끝값.step : 각 연속 숫자 사이의 증분 값. 선택 사항이며, 기본값은 1예시)SELECT generate_series(1, 10) as cnt 월 단위 데이터 더미 생성 (year-month)2024년 1월부터 12월까지의 더미 데이터 생성"generate_series(0,11)"을 활용하여 0부터 11까지 sequence를 생..

SQL & DB/PostgreSQL 2024.06.30

[PostgreSQL/MYSQL] 날짜/시간 계산(INTERVAL타입, age함수) (DATEDIFF, TIMESTAMPDIFF)

DATASET QUERYDROP TABLE IF EXISTS mst_users_with_dates;CREATE TABLE mst_users_with_dates ( user_id varchar(255) , register_stamp varchar(255) , birth_date varchar(255));INSERT INTO mst_users_with_datesVALUES ('U001', '2020-02-28 10:00:00', '2000-02-29') , ('U002', '2020-02-29 10:00:00', '1992-03-29') , ('U003', '2020-03-01 10:00:00', '2002-01-29') , ('U004', '2020-03-01 11:..

SQL & DB/PostgreSQL 2023.11.24

[PostgreSQL] CSV File를 Table에 삽입(Import)하기.

PostgreSQL에서 CSV File를 Table에 삽입(Import)하기.CSV파일을 PostgreSQL에 삽입하는 방법은 다음과 같습니다.먼저 데이터를 다운로드합니다. 그리고 데이터를 넣을 데이블을 만들어줍니다.DROP TABLE IF EXISTS sale_data;CREATE TABLE sale_data ( order_id SERIAL, date DATE, category VARCHAR(50), itemcode integer, price integer, amount integer, Primary KEY(order_id)); 데이블을 만들어 준후 CSV파일을 IMPORT하는 방법은 PSQL을 이용하는 것과 PgAdmin 기능을 이용하는 2가지 방법이 있습니다. PSQL로 CSV파일 IM..

SQL & DB/PostgreSQL 2023.03.05

[PostgreSQL] 사용자 로그데이터(Log Data) 시계열분석(2) - 행동(action)과 지속률/정착률과의 관계 분석

로그데이터 매출 분석은 아래 포스팅들을 참고해주세요 1. 사용자 로그데이터(Log Data) 매출분석(1) - 사용자들의 특징 찾기 : ysyblog.tistory.com/146?category=1176025 2. 사용자 로그데이터(Log Data) 매출분석(2) - DECILE분석 : ysyblog.tistory.com/147?category=1176025 3. 사용자 로그데이터(Log Data) 매출분석(3) - RFM 분석 : ysyblog.tistory.com/148?category=1176025 4. 사용자 로그데이터(Log Data) 시계열분석(1) - 등록추이분석/지속률/정착률 : ysyblog.tistory.com/149 지속과 정착에 영향을 주는 액션 집계 지난 포스팅에서 살펴본 지속률과..

SQL & DB/PostgreSQL 2021.01.22

[PostgreSQL] 사용자 로그데이터(Log Data) 시계열분석(1) - 등록추이분석/지속률/정착률

이번포스팅은 로그데이터를 시계열로 분석하는 포스팅입니다. 로그데이터 매출 분석은 아래 포스팅들을 참고해주세요 1. 사용자 로그데이터(Log Data) 매출분석(1) - 사용자들의 특징 찾기 : ysyblog.tistory.com/146?category=1176025 2. 사용자 로그데이터(Log Data) 매출분석(2) - DECILE분석 : ysyblog.tistory.com/147?category=1176025 3. 사용자 로그데이터(Log Data) 매출분석(3) - RFM 분석 : ysyblog.tistory.com/148?category=1176025 데이터 소개 및 Import 먼저 데이터를 데이터베이스에 Import합니다. 사용자데이터와 로그데이터는 이전에 썻던 데이터와 유사하지만, 효과적인..

SQL & DB/PostgreSQL 2021.01.18

[PostgreSQL] 사용자 로그데이터(Log Data) 매출분석(3) - RFM 분석

1. 로그데이터를 분석하고 카테고리/연령별로 집계하는 포스팅 ysyblog.tistory.com/146?category=1176025 [PostgreSQL] 사용자 로그데이터(Log Data)분석(1) - 사용자들의 특징 찾기(사용자 그룹화, 카테고리별 csv파일을 Import 하는 방법은 아래 포스팅에 자세히 적혀있습니다. ysyblog.tistory.com/143 [PostgreSQL] CSV File를 Table에 삽입(Import)하기. CSV파일을 PostgreSQL에 삽입하는 방법은 다음과 같습니다. 먼저.. ysyblog.tistory.com 2. 로그데이터를 활용하여 DECILE분석하기 ysyblog.tistory.com/147?category=1176025 [PostgreSQL] 사용자 ..

SQL & DB/PostgreSQL 2021.01.15

[PostgreSQL] 사용자 로그데이터(Log Data) 매출분석(2) - DECILE분석 (사용자 그룹화 하기)

해당 포스팅은 아래 포스팅에 이어서 진행합니다. ysyblog.tistory.com/146 [PostgreSQL] 사용자 로그데이터(Log Data)분석(1) - 사용자들의 특징 찾기(사용자 그룹화, 카테고리별 csv파일을 Import 하는 방법은 아래 포스팅에 자세히 적혀있습니다. ysyblog.tistory.com/143 [PostgreSQL] CSV File를 Table에 삽입(Import)하기. CSV파일을 PostgreSQL에 삽입하는 방법은 다음과 같습니다. 먼저.. ysyblog.tistory.com Decile 분석(Ntile) -Decile분석이란 데이터를 10단계로 분할해서 중요도를 파악하는 분석입니다.(해당 데이터에서 중요도라 함은 구매액이 될것입니다.) - 같은 수로 데이터 그룹을 ..

SQL & DB/PostgreSQL 2021.01.15

[PostgreSQL] 사용자 로그데이터(Log Data) 매출분석(1) - 사용자들의 특징 찾기(사용자 그룹화, 카테고리별 집계, 벤다이어그램(CASE))

csv파일을 Import 하는 방법은 아래 포스팅에 자세히 적혀있습니다. ysyblog.tistory.com/143 [PostgreSQL] CSV File를 Table에 삽입(Import)하기. CSV파일을 PostgreSQL에 삽입하는 방법은 다음과 같습니다. 먼저 데이터를 다운로드합니다. 그리고 데이터를 넣을 데이블을 만들어줍니다. DROP TABLE IF EXISTS sale_data; CREATE TABLE sale_data ( order_id S.. ysyblog.tistory.com Data소개 1. 고객로그데이터 2010년 12월부터 2011년 2월초까지 어느 온라인쇼핑몰의 고객 주문 로그 데이터입니다. 아래 데이터를 database에 import합니다. 테이블을 만들기 위한 SQL 쿼리입니..

SQL & DB/PostgreSQL 2021.01.12
반응형