일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 한빛미디어서평단
- matplotlib
- MySQL
- 파이썬 시각화
- 블로그
- 시각화
- Visualization
- tensorflow
- Ga
- Linux
- 매틀랩
- 한빛미디어
- Pandas
- Tistory
- 파이썬
- python visualization
- MATLAB
- Google Analytics
- 독후감
- 월간결산
- 티스토리
- 통계학
- 텐서플로
- 리눅스
- SQL
- 서평단
- Python
- 딥러닝
- 서평
- Blog
- Today
- Total
목록SQL (44)
pbj0812의 코딩 일기
"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 0. 도서 정보 1) 도서명 : 업무에 바로 쓰는 SQL 튜닝 2) 작가 : 양바른 3) 링크 1. 서평 데이터 추출 및 분석을 위해 SQL 을 이용하다 보면 항상 드는 생각이 있다. '이 쿼리가 최선일까???' 그래서 나름의 생각으로 쿼리를 이렇게도 고쳐보고 저렇게 고쳐도 보면서 나름의 감과 비법을 만들면서 쿼리를 짜왔다. 하지만 이게 어떻게 해서 도는지는 알 수가 없었다. 나름 DB를 공부해보기 위해서 딱딱한 표지로 뒤덮힌 굵은 책도 사보았지만, 그런 책은 내가 원하는 내용보다 너무 많은 내용이 들어 있었기에 보기가 힘들었다. 이 책은 나와 같이 뭔가 쿼리를 효율적으로 짜고 싶은데, 처음부터 다 보기는 싫고... 의 마음을 가진 분들에게 ..
0. 목표 - MySQL 에서의 function 생성 및 테스트 1. 실습하기(단순 출력) 1) function 생성 - FUNCTION_TEST 실행시 OK 출력 DELIMITER $$ DROP FUNCTION IF EXISTS FUNCTION_TEST$$ CREATE FUNCTION FUNCTION_TEST() RETURNS VARCHAR(20) BEGIN DECLARE Result VARCHAR(10); SET Result = 'OK'; RETURN Result; END $$ DELIMITER ; 2) 에러 확인 및 수정 Error Code: 1418. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declarat..
0. 목표 - 서브쿼리로 휴일을 제외한 근무일수 계산하기 1. 실습하기 1) 테이블 생성 (1) procedure_test CREATE TABLE sql_test.procedure_test ( id int, date1 datetime, date2 datetime ); (2) holiday CREATE TABLE sql_test.holiday ( holiday datetime ); 2) 데이터 삽입 INSERT INTO sql_test.procedure_test(id, date1, date2) VALUES(1, '2021-01-01 11:11:11', '2021-01-20 11:11:11'); INSERT INTO sql_test.procedure_test(id, date1, date2) VALUES(2,..
0. 목표 - FIRST_VALUE 를 활용한 가격이 가장 낮은 것의 아이디 구하기 1. 실습 1) 테이블 생성 CREATE TABLE sql_test.last_value_test ( id int, price int ); 2) 데이터 삽입 INSERT INTO sql_test.last_value_test(id, price) VALUES(1, 10); INSERT INTO sql_test.last_value_test(id, price) VALUES(2, 9); INSERT INTO sql_test.last_value_test(id, price) VALUES(3, 73); INSERT INTO sql_test.last_value_test(id, price) VALUES(4, 23); INSERT INTO s..
0. 목표 - lambda 와 정규표현식을 이용한 SQL like 구현 1. 실습 1) library 호출 import pandas as pd import re 2) 데이터 프레임 생성 df = pd.DataFrame({'a' : [1, 2, 3, 4, 5], 'b' : ['hello', 'ahello', 'hellob', 'hel', '123']}) 3) 함수 생성 - 정규식을 이용하여 결과가 re.Match 이면 True 반환 아니면 False 반환 def function(x, inp): p = re.compile(inp) m = p.search(x) return type(m) == re.Match 4) %hello% df['TrueOrFalse'] = df.apply(lambda x : functi..
1. 목표 - 연속 두 달간 해당 서비스를 이용한 회원 구하기 2. 실습 1) 테이블 생성 CREATE TABLE sql_test.lead_test ( IndexId int, id int, Date datetime ); 2) 데이터 삽입 INSERT INTO sql_test.lead_test(IndexId, id, Date) VALUES(1, 1, '2021-01-01'); INSERT INTO sql_test.lead_test(IndexId, id, Date) VALUES(2, 2, '2021-02-02'); INSERT INTO sql_test.lead_test(IndexId, id, Date) VALUES(3, 2, '2021-02-03'); INSERT INTO sql_test.lead_test(..
0. 목표 - 2회 방문과 3회 째 방문의 시간 차이 1. 실습 1) 테이블 제작 SELECT id, Date, ROW_NUMBER() OVER(PARTITION BY id ORDER BY Date) AS rnum FROM sql_test.with_test 2) 데이터 삽입 INSERT INTO sql_test.with_test(IndexId, id, Date) VALUES(1, 1, '2021-01-01'); INSERT INTO sql_test.with_test(IndexId, id, Date) VALUES(2, 2, '2021-01-02'); INSERT INTO sql_test.with_test(IndexId, id, Date) VALUES(3, 2, '2021-01-03'); INSERT INT..
0. 목차 및 내용 1) JOINs and UNIONs - JOIN, UNION 설명 - UNION DISTINCT = UNION ALL 2) Analytic Functions - analytic Function = analytic window function = window function - 수행 과정(링크) 3) Nested and Repeated Data(링크) - Nested Data - 타입이 INTEGER, STRING 이 아닌 RECORD 형태 - Repeated Data - NULL 유무 부분이 REPEATED - 아래와 같은 쿼리를 이용하여 REPEATED 된 형태를 레코드 형태로 풀어버릴 수 있음 SELECT l.name, l.bytes FROM `bigquery-public-data..
0. 목차 및 내용 1) Getting Started With SQL and Bigquery - Bigquery에 대한 간략한 설명 - jupyter notebook 에서의 Bigquery 를 통한 테이블 호출 방법 - kaggle 사용자는 30일마다 5TB 스캔 가능 2) Select, From & Where - 쿼리 실행하는 법 - maximum_bytes_billed 를 통해 상한선 지정하는 방법 3) Group By, Having & Count - COUNT(1) 로 전체 검색 가능, 필드명 지정해 줄 때 보다 빠르다고 함. 4) Order By - EXTRACT(Week from Date) 등의 구문으로 해당 일에 해당하는 주 등을 추출 가능 5) As & With - with 쓰면 보기 쉽다고..
0. 목표 - Procedure 를 통한 임시 데이터 보관 테이블 생성 1. Flow Chart 2. SQL 1) 테이블 생성 (1) sp_test1(raw table 저장소) CREATE TABLE pbj_db.sp_test1 ( datetime datetime, result int ) ENGINE = INNODB; (2) sp_test2(임시 데이터 저장소) CREATE TABLE pbj_db.sp_test2 ( datetime datetime, result int ) ENGINE = INNODB; 2) 프로시저 생성 - 실행시 1분 전의 데이터들을 모아서 연산 DELIMITER $$ CREATE PROCEDURE pbj_db.what_time_is_it_now() BEGIN # 지우기 DELETE ..