1. GROUP BY와 AGGRECATE 함수 : 테이블의 레코드를 그룹핑하여 그룹별로 다양한 정보를 계산 1) 먼저 그룹핑을 할 필드 결정(하나 이상의 필드가 될 수 있음) -> GROUP BY로 지정 (필드 이름을 사용하거나 필드 일련번호를 사용) 2) 그룹별로 계산할 내용 결정 -> Aggregate 함수 사용 (COUNT, SUM, AVG, MIN, MAX, LISTAGG, ...) 월별 총 세션 수 -- 월별 세션수를 계산하는 SQL -- raw_data.session_timestamp를 사용 (sessionId와 ts 필드) SELECT LEFT(ts, 7) AS mon, COUNT(1)..
전체 글
안녕하세요, 데이터 분석가를 꿈꾸는 개인기록 블로그입니다:)
count 함수는 SQL에서 레코드의 개수를 셀 때 사용한다. count는 쉬운거아냐?? ㄴ나도 그렇게 생각했지만, 몰랐던 것이 있어 기록으로 남겨본다! 이런 count_test 테이블이 있다고 가정해보자. SELECT COUNT(1) FROM count_test -- 7 SELECT COUNT(0) FROM count_test -- 7 SELECT COUNT(NULL) FROM count_test -- 0 SELECT COUNT(value) FROM count_test -- 6 SELECT COUNT(DISTINCT value) FROM count_test -- 4 위의 쿼리들은 count 함수의 다양한 예시이다. count 함수의 인자에 들어있는 숫자는 단순히 행의 존재 여부를 나타낸다. 즉, cou..

1. Redshift 론치 데모 : AWS 콘솔을 통해 Redshift를 론치해보자. (강사님이 만든 서버를 이용하여 실습 진행) AWS 홈페이지 -> 제품 -> 데이터베이스 -> Amazon Redshift 이동 2. 예제 테이블 소개 : 실습에 사용할 테이블 소개 사용자 ID : 보통 웹서비스에서는 등록된 사용자마다 부여하는 유일한 ID가 있음 세션 ID : 세션마다 부여되는 ID * 세션이란? : 사용자의 방문을 논리적인 단위로 나눈 것(크게 2가지 종류가 있음) - 사용자가외부링크(보통광고)를 타고 오거나 직접 방문해서 올 경우 세션을 생성 - 사용자가 방문 후 30분간 interaction..

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120882# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(score): answer = [] # 학생들의 평균을 담을 배열 mean mean = [] for eng, math in score: mean.append(eng * math / 2) # 평균이 큰 점수가 1등이 되도록 내림차순 정렬을 한 배열 sort_mean sort_mean = sorted(mean, reverse=True) # mean의 각 ..
N진수 -> 10진수 int 함수의 2번째 인자를 활용해서 N 진수의 문자열을 정수형(int) 숫자로 형변환할 수 있다. # 2진수 문자열 -> 10진수 정수로 변경 int('문자', 2) # 8진수 문자열 -> 10진수 정수로 변경 int('문자', 8) # 16진수 문자열 -> 10진수 정수로 변경 int('문자', 16) 10진수 -> 2, 8, 16진수 # 10진수 -> 8진수 문자열 oct(11) # 0o13 # 10진수 -> 16진수 문자열 hex(11) # 0xb # 10진수 -> 2진수 문자열 bin(11) # 0b1011 10진수 -> N진수 10진수에서 2, 8, 16진수 외의 다른 진법으로 변환은 코드 작성이 필요하다. def solution(n, q): rev_base = '' wh..

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(bin1, bin2): a = int(bin1, 2) b = int(bin2, 2) return bin(a + b)[2:] 이진수를 다루는 부분은 잘 몰라서 다른 사람의 풀이를 보고 풀었다. int함수를 이용해 먼저 bin1, bin2을 정수형 숫자로 변환한다. 그 후, 합을 구한 후, 2진수로 변환하기 위해 bin( )을 사용한다. bin(a + b)..

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120868 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 좀 어려워서 다른 사람의 풀이를 참고한 문제였다ㅠㅠ def solution(sides): answer = 0 max_side = max(sides) min_side = min(sides) # sides에 있는 변(max_sides)이 가장 길 경우 for new_side in range (max_side - min_side + 1, max_side + 1): answer +=..

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120871# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(n): cnt = 0 # new_num 리스트에 3x 마을에서 사용하는 숫자들을 담음 new_num = [] # 10진법 숫자는 100까지 사용되므로, 3x 마을에서 사용하는 숫자 개수도 100개 담음 while len(new_num) < 100: cnt += 1 # 숫자에 3이 포함되지 않거나 3의 배수가 아닐때.. if '3' not in str(..

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120887 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(i, j, k): answer = 0 # 첫 시작은 i cnt = i # i부터 j까지 숫자 중.. while cnt

1. SQL의 중요성 : 모든 데이터 직군에게 필요한 기술은 SQL - 데이터 엔지니어 : 파이썬, 자바, 스칼라, SQL, 데이터베이스, ETL/ELT, Spark, Hadoop - 데이터 분석가 : SQL, 비즈니스 도메인에 대한 지식, 통계(AB 테스트 분석) - 데이터 과학자 : 머신러닝, SQL, 파이썬, 통계 ==> 데이터 요약과 데이터 분석을 위한 SQL : 백엔드/프론트엔드 개발자와는 SQL을 사용하는 목적이 다름 2. 배움이란? 배움에는 시간과 노력이 걸림 : 정체기는 자연스러운 과정임 1) 가장 중요한 것은 버티는 힘 : 어느정도는 즐겨야함. 2) 내가 뭘 모르는지 생각해봐야함 :..