본문 바로가기
10. [SQL] Query Tuning - 1. 코드컨벤션 지정 나에게 주어진 첫번째 과제 - '우리팀에서 사용할 코드 컨벤션을 지정하는 것' 위 짤 처럼 되지 않기 위해서 다른 자료를 참고해 내가 잘할수 있게 + 다른사람이 알아보기 편하게 + 최대한 기존 코드들을 수정하기 쉽게 만들었다. (파이썬도 마찬가지) SQL General General SQL 코드 - 주석 가능하면 /*를 닫고 */를 닫습니다. 그렇지 않으면 주석 앞에 '--' 를 붙이고 간결하게 끝냅니다 /* Updating the file record after writing to the file */ UPDATE file_system SET file_modified_date = '1980-02-22 13:19:01.00000', file_size = 209732 WHERE file_name = '.v.. 2022. 11. 16.
8. [SQL] 모든 whitespace(탭, 스페이스, 엔터 값 등) 제거, [SQL] SQL의 INDEX는 무엇인가? [SQL] 모든 whitespace(탭, 스페이스, 엔터 값 등) 제거 replace (키워드,'바꿀내용','어떻게바꿀건지내용') 을 replace (키워드, ' ', '') 으로 작성하면 공백만 바뀐다. 모든 화이트 스페이스 제거를 위해서는 (외부에서 오는 데이터는 언제든 이상한 값으로 올수 있기 때문에 ) Regexp_replace (키워드, '\S*', ' 로 작성해야 한다. --- - Oracle 공식문서는 여기 [https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions130.htm](https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions130.htm) ![Untitled](ht.. 2022. 11. 15.
6. RFM Segmentation (SQL) 1. RFM 분석의 3가지 지표 집계하기 - Recency: 최근 구매일 - 최근에 구매하였는가? - Frequency: 구매 횟수 - 얼마나 자주 구매하였는가? - Monetary: 구매 금액 합계 - 얼마나 돈을 썼는가?2. 원리는 아래의 사진과 같다 3. 순서대로 진행 ! 1 먼저 집계 테이블을 구하는데 위에 분류된 기준을 사용해 컬럼을 생성해준다. select customer_id, count(customer_id) as frequency, sum(sales) as monetary, max(order_date) AS recent_order from records group by customer_id 2 그다음 나이브하게 5등분으로 나누어 준다. 위에서 만든 테이블은 CTE 형식으로 나타내어 주어도.. 2022. 11. 15.
5. SQL 날짜와 시간, 문자열 다루기, REGEXP(Regular Expression(정규 표현식)), SQL 공부전 처음에 무조건 읽어야 하는 글 ! 날짜와 시간 날짜와 시간은 date 와 string 을 왔다갔다 하므로 잘 비교해줘야 한다. 날짜를 문자형 형태로 비교하기 위해서는 date 타입을 string으로 변환 TO_CHAR() 함수를 이용 WHERE '20220115' > TO_CHAR(date, 'YYYY') as Year -> 2022 WHERE '20220115' > TO_CHAR(date, 'mm') as month -> 01 WHERE '20220115' > TO_CHAR(date, 'YYYY') as day -> 15 string 형태를 date 형태로 비교하고 싶은 경우 TO_DATE() 함수를 이용 WHERE SYSDATE > TO_DATE('20220115', 'YYYY-MM-DD') -> 2022-01-15 함수 내용 DAT.. 2022. 11. 15.
4. 그룹함수 Cube, Roll up, Grouping set, Window function, CTE, Partition by, SUBQUERY 와 JOIN 의 차이 📌 그룹함수의 필요성 그룹 함수(GROUP FUNCTION)의 필요성 결산 개념의 업무를 가지는 원가나 판매 시스템의 경우는 소계, 중계, 합계, 총 합계 등 여러 레벨의 결산 보고서를 만드는 것이 중요 업무 중의 하나입니다. 개발자들이 이런 보고서를 작성하기 위해서는 레벨별 집계를 위한 여러 단계의 SQL을 UNION, UNION ALL로 묶은 후 하나의 테이블을 여러 번 읽어 다시 재정렬하는 복잡한 단계를 거쳐야만 합니다. 하지만, 그룹 함수(GROUP FUNCTION)을 사용한다면, 하나의 SQL로 테이블을 한 번만 읽어서 빠르게 원하는 리포트를 작성할 수 있습니다. 또한, GROUPING 함수와 CASE 함수를 이용하면 쉽게 원하는 포맷의 보고서 작성도 가능합니다. 📌 요약 ROLLUP 함수 : .. 2022. 11. 14.
3. Join and Aggregate Data(1), Join and Aggregate Data(2), 조건 연산자 , WITH 문, 트랜잭션 BEGIN , COMMIT, ROLLBACK 조인과 집계 데이터 조인과 집계데이터= Grouping Set절 조인과 집계데이터 = Roll up 절 조인과 집계데이터 = Cube 절 조인과 집계데이터 = 분석 함수란 조인과 집계데이터 = AVG함수 조인과 집계데이터 = Row Number , Rank , Dense_Rank 함수 조인과 집계데이터 = First_Value , Last_Value함수 조인과 집계데이터 = Lag, Lead 함수 종류 설명 INNER 조인 특정 컬럼을 기준으로 정확히 매칭된 집합을 출력한다. OUTER 조인 특정 컬럼을 기준으로 매칭된 집합을 출력하지만 한쪽의 집합은 모두 출력하고 다른 한쪽의 집합은 매칭되는 컬럼의 값 만 을 출력한다. SELF 조인 동일한 테이블 끼리 의 특정 컬럼을 기준으로 매칭되는 집합을 출력한다.. 2022. 11. 14.
2. Various Join Queries, Group by, Having, Union, EXCEPT, Sub-query , View SQL Joins 2개 이상의 테이블을 1개의 테이블로 생각하고 join하여 쿼리를 날리는 것 ⇒ 두개이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법 보통 Primary key혹은 Foreign key로 두 테이블을 연결 테이블을 연결하려면 적어도 하나의 칼럼은 서로 공유되어야 한다. Inner join = intersect 교집합의 느낌이다. A 테이블과 B 테이블이 모두 가지고있는 데이터만 검색 SELECT Column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; SELECT 테이블별칭.조회할칼럼, 테이블별칭.조회할칼럼 FROM 기준테이블 별칭 INNER JOIN 조인테이블 별칭 ON.. 2022. 11. 14.
1. SQL이란 ?~Select , Order by, SELCET DISTINCT, WHERE, LIMIT, FETCH, IN 연산자, Between, Like / Isnull 1. SQL이란 ? SQL = '씨퀄'이라고 불림 SQL은 1974년에 SEQUEL (씨퀄)로 탄생 했지만, 지금 이름인 SQL로 변경 되어 지금까지 SQL 불린다. 그러나 에 스-큐-엘 이 아닌 씨퀄로 주로 발음된다. 절차적 언어(procedural language)가 아닌 선언적 언어(descriptive language) ☝🏼 A STRUCTURED ENGLISH QUERY LANGUAGE ⇒ A STRUCIURED QUERY LANGUAGE 데이터 처리 방법은 SQL Query Optimizer 가 대신 처리함 필요한 데이터 집합을 SQL 로 정의하면 Query Optimizer 가 SQL를 처리 데이터, 하드웨어, 테이블 구조를 고려하여 처리하기 때문에, Data Scientist, Data A.. 2022. 11. 13.
반응형