본문 바로가기

SQL - Mysql & Oracle

(23)
[Bigquery] SQL로 Loop과 While 반복문 제어하기(feat. 절차적 코드) 빅쿼리 환경에서는 절차적 코드 기법으로 데이터를 전처리할 수 있다. 그 중에서 대표적인 방법인 Loop와 While을 통해 코드를 구성하여 작업 시간을 단축시켜줄 기법을 소개하고자 한다. 목차 1. 빅쿼리의 절차적 코드와 반복문 기본 소개 2. Loop 문을 통한 반복문 제어 3. While 문을 통한 반복문 제어 1. 빅쿼리의 절차적 코드와 반복문 기본 소개 빅쿼리에서는 사용하는 리소스만큼 과금이 되는 형식이기 때문에 코드 효율성에 따라 운영 비용도 달라진다. 실제로 GCP 정책상 사용되는 리소스 1TB당 약 $5의 과금을 실시하고 있는데, CRUD 과정에서 1TB는 아주 쉽게 쓰일 수 있기 때문에 효율적인 데이터 파이프라인 관리 및 SQL문 작성은 필수적이다. 이를 위한 솔루션이 바로 절차적 언어이다..
Python과 Bigquery 1분만에 연동하기 파이썬과 Biquery를 연동하는 방법은 크게 두 가지가 있다. 하나는 pandas의 read_gbq 함수이고, 두번째는 client 패키지를 이용하는 것이다. 목차 1. Google Cloud PlatformConsole 기본 준비하기 2. Pandas의 read_gbq 방법으로 통해 연동하기 3. bigquery의 client 함수를 통해 연동하기 1. Google Cloud Platform 기본 준비하기 이번 포스팅은 Google Cloud Console에 자기의 프로젝트가 준비가 되어있어야 한다. 프로젝트 기본 설정하는 방법은 이전 포스팅인 "Big Query로 SQL 마스터 - 1. 프로젝트 설정하기"에 있으니 참고하길 바란다. 다음에 준비해야 하는 것은 서비스 계정 생성 및 JSON 파일을 출..
[빅쿼리] SQL에서 문자를 날짜 형태로 변환하는 법(parse_date 마스터) 실무자들이 일을 할 때 SQL 환경에서 문자로 정의된 날짜를 실제 Datetime 형태로 전처리해야 하는 경우가 많다. Bigquery와 Oracle에서 문자열 데이터를 전처리하는 방법에 대해서 자세하게 안내해보고자 한다. 목차 1. Bigquery의 날짜변환 함수 소개 2. Bigquery parse_date 함수 활용법 Bigquery의 날짜변환 함수 소개 많은 경우 날짜 형식을 변환하려고 할 때, Could not cast literal "220801" to type TIMESTAMP 와 같은 에러가 뜨면서 전처리하는데 어려움을 겪을 것이다. 지금 전처리하고자 하는 문자열 데이터의 유형에 따라 어떻게 데이터를 처리할 수 있는지에 대해서 소개하는 것이 이번 포스팅의 핵심이다. Bigquery pars..
[Oracle] 리트코드 176번 Second Highest Salary SQL코드 해설 오늘은 리트코드에서 176번 문제인 Second Highest Salar에 대한 해설을 Oracle 기반으로 해보고자 한다. 이 문제에서 사용할 SQL 개념은 Sub Query, Max 함수 그리고 시공간 복잡도의 효율화이다. 해당 개념들을 최대한 간결하고 쉽게 설명하는 동시에 코드 해설을 해보고자 한다. 목차 1. 문제의 출처 및 기본 설명 2. Oracle 코드 해설 - SQL 코드 효율화하기 문제의 출처 및 기본 설명 문제의 출처는 이 주소에 있으니 참고하길 바란다. 문제의 요구사항은 Employee 테이블에서 2번째로 높은 연봉이 과연 얼마인지 추출하는 것이다. 여기서 또 핵심은 만약 두 번째가 없다면 반드시 null 값을 반환해야 한다는 것이다. Oracle 코드 해설 - SQL 코드 효율화 하..
[Orcale] 리트코드(Leet Code) - Rank Scores 정답 해설(feat. Rank 함수) 리트코드 SQL 문제 중 Rank Scores 정답 누구나 알기 쉽게 해설해보고자 한다. 이 문제의 핵심은 바로 SQL에서 Rank와 dense rank 함수의 차이를 이해하고 적용하는 것인데, 개념부터 실전 코드까지 활용할 수 있도록 최대한 자세하게 안내해보고자 한다. 목차 1. 리트코드 Rank Score 문제 기본 해설 2. Oracle의 Rank와 Dense Rank 함수 설명 3. Rank Score 코드 정답 리트코드 Rank Score 문제 기본 해설 리트코드는 문제의 양도 많고 질도 좋은데, 가장 어려움을 겪을 수 있는 부분이 바로 영어로 되어있다는 것이다. 여기서는 그 고민을 해결해주기 위해서 다 번역을 하고 문제의 핵심만 설명하고자 한다. (문제의 링크) 데이터셋의 기본 설명 - Sco..
[Oracle] 입양 시각 구하기(1) - Group by 사용법 마스터하기 이번 포스팅에서는 Oracle 언어를 사용하여 프로그래머스 고득점 키트 문제 중 "입양 시각 구하기(1)" 문제를 풀어볼 것이다. 단순 정답만 제공하는 것이 아니라 Group by 문법을 정확하게 사용하는 방법까지 알아보면서 실력을 키워보는 것이 목표이다. 문제의 출처 및 기본 해설 문제의 출처는 당연히 프로그래머스 SQL 고득점 키트 중에서 Group by 영역을 찾아가면 된다. 이 문제의 소스 데이터는 Kaggle의 동물 입양 데이터를 기반으로 기출 문제가 만들어졌기 때문에 더 심도 있는 공부를 원하는 사람들은 사이트를 참고해도 좋을 것이다. 참고로구글에 Austin Animal Center Shelter Intakes and Outcomes 라고 검색하면 원하는 데이터를 바로 찾을 수 있다. 문제의..
[SQL] JOIN 한 방에 정리 - 개념부터 코드까지 이것만 보자 SQL을 다루는 사람들이 반드시 알아야 할 개념 중에 하나가 바로 JOIN이다. Join은 아주 쉽게 얘기해서 집합의 개념과 매우 유사하다. Data Analyst, PO, PM 등 많은 직군의 사람들이 쓰기 시작해서, 반드시 알아야 할 기초와 코드를 정리해보고자 한다. 오늘 다루게 될 내용은 INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, 그리고 FULL OUTER JOIN이다. 1. JOIN의 모든 종류 JOIN의 기초 문법 안내 JOIN 원하는 테이블 AS 약칭 ON 기준1 = 기준2 Tip1. 기준1과 기준2는 데이터 구조도 동일하게 하는 것을 권장한다. Tip2. Bigquery에서는 데이터 구조가 다르면 JOIN시 Error가 발생한다. Big Query 실..
[Bigquery] Big Query로 SQL 마스터 - 2. 공개 데이터셋 소개 이번 포스팅은 SQL 코딩테스트 연습, 실무 연습 등을 할 때 필요한 환경을 구축하고, 실제로 SQL 코드를 작성해보는데 목적이 있다. 많은 사람들이 SQL은 연습해보고 싶은데, 마땅히 할 환경도 모르고, 코딩테스트로는 한계가 있어서 답답함을 느낀다. 이번에 포스팅에는 Bigquery에서 내가 원하는 데이터와 코드를 마음대로 그리고 무료로 작성할 수 있는 환경을 소개하고자 한다. 1. Bigquery Public Dataset (공개 데이터셋) 찾기 이 포스팅에 앞서서 Bigquery 프로젝트 설정을 해야 한다. 만약 하지 않았다면, 이전 포스팅을 참고해서 반드시 환경 설정을 해주고 오길 바란다. (1) Bigquery에서 데이터 추가하기 Bigquery에서 Public Dataset을 찾기 순서 정리:..

728x90
반응형