[TIL] day31

3735 단어 TILTIL

TIL

(새로 배웠거나 까먹었던 것들 위주로 정리)

관계형 데이터베이스 예제

  • 세션1: 구글 키워드 광고로 시작한 세션
  • 세션2: 페이스북 광고를 통해 생긴 세션
  • 세션3: 네이버 광고를 통해 생긴 세션

이 3가지 세션 중 어느 광고가 상품 구매에 가장 많은 영향을 끼쳤는가?

3가지의 방법론이 있다.
1. first channel attribution: 이 사이트를 처음 발견하게 해준 채널에게 credit
2. last channel attribution: 이 상품 구매를 만들어낸 마지막 채널에게 credit
3. multi channel attribiution: 관여했던 모든 채널에게 나눠서 credit


SQL

SQL 주석
--: 인라인 한줄짜리 주석
/* -- */: 여러 줄에 걸쳐 사용 가능한 주석

DDL: 테이블 구조 정의 언어
DML: 테이블 데이터 조작 언어

CREATE(DDL)

CREATE TABLE

Primary key의 uniqueness는 빅데이터 웨어하우스에서는 강제되지 않는다. (Redshift, Snowflake, BigQuery)
(속성을 지정할 수 있으나 무시됨)

DROP(DDL)

DROP TABLE

IF EXISTS을 사용해서 없는 테이블을 지우려고 하는 경우에 나는 에러를 방지할수 있다.

DROP TABLE IF EXISTS table_name;

DELETE FROM으로도 삭제 가능.
DROP과의 차이점은 DROP은 테이블 자체를 삭제하지만, DELETE는 테이블은 남아있고 레코드를 삭제한다.

또한 TRUNCATEDELETE도 차이가 있는데.
DELETE는 트렌젝션 기능을 사용할 수 있으나, TRUNCATE는 사용할 수 없다는 차이가 있다.

*DELETE&TRUNCATE 👉 DML

CASE WHEN

필드 값의 변환을 위해 사용 가능 하다.

  • CASE WHEN 조건 THEN 참일때 값ELSE 거짓일때 값 END 필드이름
// 예시)
SELECT CASE
	WHEN channel in ('Facebook', 'Instagram') THEN 'Social_Media'
    WHEN channel in ('Google', 'Naver') THEN 'Search_Engine'
    ELSE 'Something_Else'
END channel_type
FROM raw_data.user_session_channel;

WHERE

  • IN
  • LIKE / ILIKE
  • BETWEEN

이 오퍼레이터들은 CASE WHEN 사이에서도 사용 가능하다.

STRING Functions

  • LEFT(str, N): 문자열을 왼쪽부터 N만큼 자르기
  • LPAD, RPAD: 지정한 길이만큼 왼쪽(오른쪽)부터 특정문자로 채워줌
  • SUBSTRING: 문자열 일부 추출

타입 변환

  • 오퍼레이터 사용

    	category::float
  • cast 함수 사용

    	cast(category as float)

앞에 잠깐 방법론 다루면서 마케팅 이야기 하실때 혼자 좀 많이 신났다.
전공관련 나오니까 작은거에도 신나버림...

좋은 웹페이지 즐겨찾기