사용자 ID : 보통 웹서시스에서는 등록된 사용자마다 부여하는 유일한 ID
세션 ID : 세션마다 부여되는 ID
세션 : 사용자의 방문을 논리적인 단위로 나눈 것
사용자가 외부 링크를 타고 오거나 직접 방문해서 올 경우 세션을 생성(외부링크)
사용자가 방문 후 30분간 interaction이 없다가 뭔가를 하는 경우 새로 세션을 생성(time bound)
즉 하나의 사용자는 여러개의 세션을 가질 수 있음
보통 세션의 경우 세션을 만들어낸 접점(경유지)를 채널이란 이름으로 기록해둠
-> 이런 페이지에 오래 머문다!
마케팅 관련 기여도 분석을 위함
또한 세션이 생긴 시간도 기록
관계형 데이터베이스 예제 - 웹서비스 사용자/세션 정보
이 정보를 기반으로 다양한 데이터 분석 지표 설정이 가능
마케팅 관련 사용자 트래픽관련
DAU WAU MAU 등의 일주월별 액티브 유저 차트
marketing channel attribution 분석
해당 사이트를 처음 발견해준 사이트에게 크레딧을 몰아주기
상품 구매 직전 마지막 채널에게 모든 걸 몰아주는게
모든 채널
postgre sql 8.x 와 호환
먼저 다수의 sql 문을 실행한다면 세미콜론으로 분리 필요
SQL 주석
SQL 키워드는 대문자를 사용한다던지 하는 나름대로의 포맷팅이 필요
테이블/필드 이름의 명명규칙을 정하는 것이 중요
create table(CTAS)
primary key uniqueness
DROP TABLE
ALTER TABLE
SELECT 문
INSERT INTO
UPDATE FROM
DELETE FROM
TRUNCATE
현업에서 깨끗한 데이터란 존재하지 않음
데이터 일을 한다면 항상 데이터의 품질을 의심하고 체크하는 버릇이 필요
어느 시점이 되면 너무나 많은 테이블들이 존재하게 됨
그 시점 부터는 Data Discovery 문제들이 생겨남
Case when 구무의 end 는 새로운 필드 이름을 공지
값이 들어온다면, 값 vs null로 판단
select count(1) -> 모든 레코드
select count(null) -> 0
select count(컬럼 이름)
select count(distinct(column name))
IN
LIKE & ILIKE
BETWEEN
위의 오퍼레이터는 CASE WHEN 에서 모두 사용 가능
Null 값들은 오름차순 일 경우 마지막에 위치
내림차순일 경우 처음에 위치
이름을 바꾸고 싶다면 NULLS FIRST,NULLS LAST로 사용
convert_timezon('america/los_angeles',ts)
to_char, to_timestamp
오퍼레이터 사용
GROUP BY 1를 참조합니다.first column in select statement어느 것이account_id.