본문 바로가기

SQL

(10)
트랜잭션과 기타 고급 SQL 문법 5주차 고급 SQL 활용데이터 웨어하우스와 SQL 기본에 대해 배우고 이를 바탕으로 데이터 분석에 대해 학습 (5) 학습 주제: 트랜잭션과 기타 고급 SQL 문법  트랜잭션 트랜잭션이란?Atomic하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법 은행 계좌 이체를 예로 들 수 있다.만일 인출은 성공했는데 입금이 실패한다면? 이 두 과정은 동시에 성공하든지 실패하든지 해야 함조회만 한다면 트랜잭션으로 묶일 이유가 없기 때문에 SELECT에는 사용할 이유가 없고, DDL이나 DML 중 레코드를 수정, 추가, 삭제한 것에만 의미가 있다. BEGIN;        A의 계좌로부터 인출;        B의 계좌로 입금;END; END는 COMMIT과 동일(BEGIN;COMMIT도 가능하다는 뜻..
JOIN 심화 학습 5주차 고급 SQL 활용데이터 웨어하우스와 SQL 기본에 대해 배우고 이를 바탕으로 데이터 분석에 대해 학습 (4) 학습 주제: JOIN    각 JOIN에 대해 설명하기 전에, JOIN 문법 자체의 기본 틀을 설명하자면 다음과 같다.   JOIN 시에는 먼저 중복 레코드가 없고, Primary Key의 uniqueness가 보장됨을 체크해야 한다.또한 조인하는 테이블들 간의 관계를 명확하게 정의해야 한다.(One to one, One to many, Many to Many)Many to many 같은 경우에는 가능하다면 one to one이나 one to many로 변환하여 조인하는 것이 덜 위험하다고 한다.어느 테이블을 베이스로 잡을지, 즉 From에 사용할지 결정하는 것도 중요하다.  위와 같은 테..
GROUP BY와 Aggregate 함수 5주차 고급 SQL 활용데이터 웨어하우스와 SQL 기본에 대해 배우고 이를 바탕으로 데이터 분석에 대해 학습 (3) 학습 주제: GROUP BY와 Aggregate 함수 보통 테이블의 레코드를 그룹핑하여 그룹별로 다양한 정보를 계산한다. 이때 먼저 그룹핑을 할 필드를 결정해 GROUP BY로 지정하고, 다음으로 그룹별로 계산할 내용을 결정한다. 이때 Aggregate 함수(COUNT, SUM, AVG, MIN, MAX, LISTAGG, ...)를 사용한다. 보통 필드 이름을 지정하는 것이 일반적이다. (실제로 해보면 왜 권장되는지 이해된다.) 몇 가지 코드를 직접 작성해 보자. 1. 가장 많이 사용된 채널은 무엇인가?SELECT channel, COUNT(1) AS session_count, ..
Redshift, 팀워크 특강 5주차 고급 SQL 활용데이터 웨어하우스와 SQL 기본에 대해 배우고 이를 바탕으로 데이터 분석에 대해 학습 (2)  오늘은 실습에 들어갔다.   직접 Redshift cluster 만드는 방법을 보여주셨는데 간단해서 신기했다. 앞으로는 코랩에서 SQL 실습을 해보게 될 것 같다. 그리고 오늘은 특강이 있었는데, 마침 프로젝트를 마무리하는 우리에게 상당히 필요한 내용이었다.바로 팀원 간 피드백에 대해서...! 피드백하는 방식에 대한 설명도 도움이 됐고, 예시로 들어주신 피드백 내용 자체도 도움이 됐다.  첫번째 사례.본인의 과거 성공 방정식이 지금도 통할 거라는 건 착각이다...!  두번째 사례.주니어 입장으로서 첫번째 사례보다 더 와닿았던 것 같다.자기검열을 많이 하면 질문을 못하게 되고, 그러면 문제..
데이터 웨어하우스, AWS, Redshift 5주차 고급 SQL 활용데이터 웨어하우스와 SQL 기본에 대해 배우고 이를 바탕으로 데이터 분석에 대해 학습 (1)    개인적으로 빅데이터 발전에 있어 가장 큰 공헌을 한 부분이 클라우드라고 생각한다. 데이터센터 공간을 직접 확보하고, Capacity planning을 하는 것은 큰 회사들에게야 별 문제 없겠지만 작은 회사들에게는 너무 큰 비용이 드는 일이다. 특히 나는 AWS 서비스의 발전이 아마존의 상술(?)에서 비롯된 게 아니라 아마존 측에서도 놀고 있는 서버를 활용하는 좋은 전략으로서 출발했다는 점이 인상적이었다.  정말 많은데 계속 추가되고 있다. 옵션도 매우 다양하다. Don't reinvent the wheel 이라는 문구가 이 상황에 정확히 들어맞는 것 같지는 않지만...그냥 IT분야 모..
NBA Players 실전 데이터 분석 3주차 SQL 기초와 데이터 분석SQL 쿼리 문법을 활용하여 데이터 분석을 진행하기(5) 학습 주제: 실전 데이터 분석 사례  kaggle 데이터셋을 활용해 분석 실습사례 세 가지 소개해주셨는데 그 중 NBA Players 자료가 재밌을 것 같아서 강의 보며 함께 실습해보았다. https://www.kaggle.com/datasets/justinas/nba-players-data/data NBA PlayersBiometric, biographic and basic box score stats from 1996 to 2022 seasonwww.kaggle.com 친절하게도 Analysis Ideas를 제공하고 있다. Analysis IdeasThe data set can be used to explore ..
효율적인 SQL 코드 작성하기 3주차 SQL 기초와 데이터 분석SQL 쿼리 문법을 활용하여 데이터 분석을 진행하기(4) 학습 주제: 효율적인 SQL 코드 작성하기  1. 테이블을 집합으로 생각하기 --> 최대한 작게 만들어 놓고 JOIN 하기 2. *, % 사용 지양하기 --> LIMIT 걸고 조회하기, 파티션이 있는 테이블인지 확인하고 파티션을 필터 조건으로 걸고 조회하기SELECT clk_index,user_name, product_idFROM clicksWHERE date = '20231104'LIMIT 10  --> 컬럼 수가 많은 테이블을 조회할 때 SELECT * 지양하기 --> LIKE 사용 시 % 제한적으로 사용하기아래 예시에서 '23FW%' 대신 '23FW__' 쓴 것처럼SELECT product_id, nameFRO..
데이터 타입 3주차 SQL 기초와 데이터 분석SQL 쿼리 문법을 활용하여 데이터 분석을 진행하기(3) 학습주제: 다양한 데이터 타입 다루기  숫자 BIT(M): 0과 1로만 구성. 1TINYINT: Signed 범위는 -127 ~ 127, Unsigned 범위는 0 ~ 255BOOL, BOOLEAN: TINYINT(1)과 같음. 0이면 False, 1이면 TrueSMALLINT: -32768 ~ 32767, 0 ~ 65535MEDIUMINT: -8388608 ~ 8388607, 0 ~ 16777215INT, INTEGER: -2147483468 ~ 2147483647, 0 ~ 4294967295BIGINT, SERIAL: INT 타입보다 2배 많은 비트를 사용하는 정수. -9223372036854775808 ~ 92..