전체 글

궁금해하고 공부하고 기록하고
· 마케팅
사실 나는 마케팅을 첫 직장에서 처음 배운거라 맨땅에 헤딩하는 식으로 습득해왔다. 그래서 데이터 기반의 마케팅을 하는 근본적인 이유가 무엇인지 그리고 정말 기초적인 이론과 같은 지식은 거의 무지한 편이라고 느껴졌다. 면접 복기하면서도 이 부분에 대한 부족함을 느껴서 인프런에서 강좌를 신청하게 되었다. [인프런] 그로스해킹 - 데이터와 실험을 통해 성장하는 서비스를 만드는 방법 / 양승화 강사님 그로스해킹 - 데이터와 실험을 통해 성장하는 서비스를 만드는 방법| 양승화 - 인프런 강의현재 평점 4.9점 수강생 3,225명인 강의를 만나보세요. 데이터를 기반으로 정의한 핵심지표를 바탕으로, 실험을 통해 배움을 얻고, 이를 빠르게 반복하면서 서비스를 성장시키는 것. 그로스해킹의www.inflearn.com ..
· Database/SQL
문제 풀다가 다른 사람들 블로그를 봤는데 처음 보는 CROSS JOIN을 사용한 풀이가 있어서 적어보려고 한다. CROSS JOIN이란?두 테이블의 모든 행을 서로 조합하는 조인으로, 수학의 곱집합(카테시안 곱) 과 동일한 개념으로 보면 된다.➔ A테이블 행 수 X B테이블 행 수 = 결과 테이블 행 수 특징1. 조건 절은 `ON`이 아닌 `WHERE`절을 활용한다.2. 두 테이블 중 어느 한쪽이라도 데이터가 없는 행이 있다면 자동으로 제외된다.3. `WHERE`절로 필터링하면 사실상 INNER JOIN과 똑같이 작동한다. (그래서 CROSS JOIN은 잘 사용하지 않는 것 같음) SELECT * FROM A CROSS JOIN B WHERE A.id = B.id;# 똑같음SELECT * FROM A I..
· Database/SQL
당연히 `median()`이라는 함수가 있을 줄 알았는데.. 충격적이게도 MySQL에는 중앙값을 구하는 함수가 없었다. 그래서 시작하는 포스팅...MySQL에서 중앙값 구하기..!!! 방법은 총 3가지가 있다. 중앙값의 수학적인 의미만 알면 쉽게 구할 수 있다. 중앙값(Median)이란?: 주어진 숫자를 오름차순 정렬했을 때 가장 중앙에 위치하는 값 1. 데이터가 홀수개(n) 일 때오름차순 정렬된 데이터 중 정확히 한가운데 있는 값= (n+1) / 2 번째 값 2. 데이터가 짝수개(n) 일 때오른차순 정렬된 데이터의 한 가운데 있는 두 수의 산술평균= {(n/2) 번째 값 (n/2) + 1번째 값 } / 2 중앙값 구하기SELECT AVG(rnk) AS medianFROM ( SELEC..
· Database/SQL
SUBSTRING: 특정 위치를 기준으로 문자열을 잘라내는 함수SUBSTRING(문자열, 시작위치, 길이)시작위치는 1부터 시작한다. 예제다음 데이터는 OTT 플랫폼의 시청 로그를 담은 view_log 테이블이다. '20240101' 형식의 시청날짜를 연도/월/ 일로 쪼개어, 각 연도/월/일별로 어떤 콘텐츠를 얼마나 시청했는지 시청횟수를 집계하는 쿼리를 작성하시오.content_idcontent_nameview_dtgenrec12341박2일20210101예능d5678꽃보다 남자20231105드라마............WITH c AS( SELECT SUBSTRING(view_dt, 1, 4) AS 연도, SUBSTRING(view_dt, 5, 2) AS 월, S..
· Database/SQL
LAG이전(과거 시점) 행의 값을 반환.전년/전월/전일 대비직전 상태와 비교하고자 할 때 기본 구조LAG(컬럼, offset, default) OVER (PARTITION BY ... ORDER BY ...)`offset` : 몇 칸 전을 확인할지(디폴트값 = 1)`default` : 값이 없을때 반환할 값(생략 가능, 생략할 경우 `NULL`) LEAD다음(미래 시점) 행의 값을 반환한다.다음 시점까지의 간격다음 값과 비교 기본 구조LEAD(컬럼, offset, default) OVER (PARTITION BY ... ORDER BY ...)`offset` : 몇 칸 뒤를 확인할지(디폴트값 = 1)`default` : 값이 없을때 반환할 값(생략 가능, 생략할 경우 `NULL`) ..
· Database/SQL
기본적으로 SQL은 반복을 하지 못하기 때문에, 가령 1부터 10까지의 숫자를 만들고 싶을 떄가 참 난감하다.이런 경우에 대응해서 사용할 수 있는 문법이 바로 `WITH RECURSIVE` 문이다. WITH RECURSIVE자기 자신을 계속 다시 불러오면서 결과를 한 줄 씩 쌓을 수 있는 재귀문 기본 구조언제 멈출지는 ②반복 부분의 `WHERE`절 조건으로 결정한다.WITH RECURSIVE 이름 AS ( -- ① 시작값 (anchor), 비반복문 SELECT FROM UNION ALL -- ② 반복 부분 (recursive) SELECT FROM WHERE -- 반복문 탈출 조건)SELECT * FROM 이름; 예제1) 7일치 날짜 만들기WITH RECURSIVE date..
· Database/SQL
1. CASE WHEN ~ ENDCASE WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 .. ELSE 값END AS 별칭 ** `THEN` 뒤에 올 수 있는 값들의 형태는 아래와 같이 올 수 있으나, 주의할 점은 서로 값1, 값2, ... 값N이 모두 동일한 타입이어야 한다.숫자문자열컬럼계산식 (ex. `column * 2`)함수 (ex. `IFNULL(column, 0)`) 2. IF: 조건이 참이라면 참일때 값을, 아니라면 거짓일때 값을 출력한다. (중첩 사용 가능)SELECT IF(조건, 참일때값, 거짓일때값) AS 별칭 3. IFNUILL: 컬럼값이 `NULL`이면 대체값을, 아닐 경우 해당 컬럼값을 출력한다. (중첩 사용 가능)SELECT IFNULL(컬럼명, 대체값) ..
· Database/SQL
REGEXP정규 표현식을 이용해서 데이터를 찾는 연산자WHERE 컬럼 REGEXP '패턴'► 컬럼값이 정규표현식의 패턴과 일치하면 `TRUE`를, 일치하지 않으면 `FALSE`를 반환한다. 정규 표현식(Regular Expression)이란?문자열에서 특정 패턴을 만족하는 부분을 찾을 때 사용하는 형식 언어 대표 정규표현식1. `^` : 문자열의 시작을 표현함-- 컬럼값 중 A로 시작하는 행WHERE 컬럼명 REGEXP '^A' 2. `$` : 문자열의 끝을 표현함-- 컬럼값 중 A로 끝나는 행WHERE 컬럼명 REGEXP 'A$' 3. `.` : 임의의 문자 1개를 표현함-- 컬럼값 중 길이가 3인 문자열을 가진 행WHERE 컬럼명 REGEXP '^...$' 4. `[]` : 문자 집합을 표..
상급닌자연습생
상급닌자수련원