작성일자 : 2023-09-23 Ver 0.1.1 SQL에는 집약 함수(Aggregate Function)라고 하는, 다른 함수와는 구별해서 부르는 함수가 있다. COUNT SUM AVG MIN MAX 위 5개 함수는 가장 대표적이면서 익숙한 함수이고, 이 외에도 분산, 상관과 같은 통계적 자료를 구하기 위한 함수들이 많이 구현되고 있다. 1. 여러 개의 레코드를 한 개의 레코드로 집약 (비집약 테이블) id data_type data_1 data_2 data_3 data_4 data_5 data_6 Jim A 100 10 34 346 54 Jim B 45 2 167 77 90 157 Jim C 3 687 1355 324 457 Ken A 78 5 724 457 Ken B 123 12 178 346 85..
Optimization
작성일자 : 2023-09-19 Ver 0.1.1 집계를 수행하는 쿼리를 작성할 때, 쓸데없이 길어지는 경우를 자주 볼 수 있다. 아래의 예시 테이블을 살펴보자. (인구 테이블) Perfecture(지역이름) Sex(성별) Pop(인구) 성남 1 60 성남 2 40 수원 1 90 수원 2 100 광명 1 100 광명 2 50 일산 1 100 일산 2 100 용인 1 20 용인 2 200 (원하는 결과) Perfecture Pop_mem Pop_wom 수원 90 100 일산 100 100 성남 60 40 광명 100 50 용인 20 200 1. 집계 대상으로 조건 분기 1) UNION을 사용한 방법 이 문제를 풀 때 절차 지향적인 사고방식으로 접근한다면, 일단 남성과 여성 인구를 지역별로 구한뒤 merge..
작성일자 : 2023-09-16 수정일자 : 2023-09-19 Ver 0.1.2 UNION을 사용한 조건 분기는 SQL 초보자가 좋아하는 기술 중 하나이다. 일반적으로 이러한 조건 분기는, WHERE 구만 조금씩 다른 여러 개의 SELECT 구문을 합쳐서, 복수의 조건에 일치하는 하나의 결과 집합을 얻고 싶을때 사용한다. 이러한 방법은 큰 문제를 작은 문제를 나눌 수 있다는 점에서 생각하기 쉽다는 장점이 있다. 따라서 조건 분기와 관련된 문제를 접할 때 가장 처음 생각할 수 있는 기본적인 방법이다. 하지만 이런 방법은 성능적인 측면에서 굉장히 큰 단점을 가지고 있다. 외부적으로는 하나의 SQL 구문을 실행하는 것처럼 보이지만, 내부적으로는 여러 개의 SELECT 구문을 실행하는 실행 계획으로 해석되기 ..
작성일자 : 2023-09-10 Ver 0.1.1 참고 서적 : SQL 레벨업 이 페이지는 성능 좋은 SQL을 쓰는 방법, 특히 대량의 데이터를 처리하는 SQL의 성능을 향상시키는 방법을 정리한 페이지입니다. 프로젝트를 하면서 SQL을 많이 사용하게 되었습니다. 작성일 기준으로 저의 메인 직무는 Tableau를 이용한 대시보드 개발이기에 Tableau를 잘 다루는 것이 중요합니다. 하지만, 대시보드를 만들기 위해 데이터에 대한 분석과 DB를 다루는 역량 또한 매우 중요합니다. 마치 요리사가 음식을 만들기에 앞서 식재료에 대해서 잘 알아야하며(어떤 식재료를 써야하며, 어떻게 써야할지 등), 요리 도구를 잘 다루어야하는 것과 동일합니다. 어떤 관점에서는 대시보드 개발자에게 DB를 다루는 능력이 Tableau..