GROUP BYGROUP BY 절 & Aggregate함수GROUP BY를 활용하여 테이블의 레코드를 그룹핑하여 그룹별로 다양한 정보를 계산할 수 있다. 계산 과정은 두 단계로 이루어지며, 다음과 같다.그룹핑할 필드를 GROUP BY로 결정(하나 이상의 필드가 될 수 있음)그룹별로 계산을 위한 Aggregate 함수 사용(COUNT, SUM, AVG, MIN, MAX, LISTAGG, ...)예제 (1)아래의 SQL 구문은 월별 세션 수를 카운트한다. timestamp의 형식은 "yyyy-mm-dd ~"이므로 LEFT(ts, 7)은 "yyyy-mm"이 되며, mon으로 그룹핑하여 월별 세션 수의 개수를 계산한다.SELECT LEFT(ts, 7) AS mon, COUNT(1) AS session_cou..
SELECT 배우기 예제 테이블 소개 웹서비스 사용자/세션 정보 세션이란 사용자의 방문을 논리적인 단위로 나눈 것이다. 하나의 사용자는 여러 개의 세션을 가질 수 있으며, 보통 세션을 만들어낸 접점(경유지)을 채널이란 이름으로 기록해 두어 마케팅 관련 기여도 분석에 활용한다. 사용자 ID : 보통 웹 서비스에서 등록된 사용자마다 부여하는 유일한 ID 세션 ID : 세션마다 부여되는 ID 이 정보를 기반으로 다양한 데이터 분석과 지표 설정이 가능하다. 일주월별로 Unique User의 수를 사용자 ID를 통해 카운트하여 Active User를 확인할 수 있다. 예를 들어 WAU의 경우, 일주일 내에 여러 번 방문을 한 User를 1로 계산하여 Active User를 카운트한다. 마케팅 관련, 사용자 트래픽..
SQL과 데이터베이스 소개 SQL의 중요성 데이터 요약과 데이터 분석을 위해 SQL은 모든 데이터 직군에게 필수적으로 요구되는 역량이다. 데이터 관련 3개의 직군 데이터 엔지니어 : 파이썬, 자바/스칼라, SQL, 데이터베이스, ETL/ELT(Ariflow, DBT), Spark, Hadoop 데이터 분석가 : SQL, 비즈니스 도메인 지식, 통계(AB 테스트 분석) 데이터 과학자 : 머신러닝, SQL, 파이썬, 통계 관계형 데이터베이스란? 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지이다. 엑셀 스프레드시트 형태의 테이블(행/열)로 데이터를 정의하고 저장한다. 이러한 관계형 데이터베이스를 조작하는 프로그래밍 언어가 SQL이며, 언어 형태는 다음과 같다. 테이블 정의를 위한 DDL(Data..
장고(Django) - 사용자(Users)와 인증(Authentication) RelatedField UserSerializer를 정의할 때, PrimaryKeyRelatedField를 사용하여 해당 유저의 questions를 id로 가져오도록 작성했었다. 이것 말고도 다양한 RelatedField를 사용해 보는 실습을 진행하다. StringRelatedField id로만 표시되어 어떤 question인지 알지 못했기 때문에 StringRelatedField를 사용하여 질문을 표시하여 확인할 수 있다. class UserSerializer(serializers.ModelSerializer): questions = serializers.StringRelatedField(many=True, read_only..