[TIL] day31
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
는 테이블은 남아있고 레코드를 삭제한다.
또한 TRUNCATE
와 DELETE
도 차이가 있는데.
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)
앞에 잠깐 방법론 다루면서 마케팅 이야기 하실때 혼자 좀 많이 신났다.
전공관련 나오니까 작은거에도 신나버림...
Author And Source
이 문제에 관하여([TIL] day31), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hhyebb/TIL-day31저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)