LAG이전(과거 시점) 행의 값을 반환.전년/전월/전일 대비직전 상태와 비교하고자 할 때 기본 구조LAG(컬럼, offset, default) OVER (PARTITION BY ... ORDER BY ...)`offset` : 몇 칸 전을 확인할지(디폴트값 = 1)`default` : 값이 없을때 반환할 값(생략 가능, 생략할 경우 `NULL`) LEAD다음(미래 시점) 행의 값을 반환한다.다음 시점까지의 간격다음 값과 비교 기본 구조LEAD(컬럼, offset, default) OVER (PARTITION BY ... ORDER BY ...)`offset` : 몇 칸 뒤를 확인할지(디폴트값 = 1)`default` : 값이 없을때 반환할 값(생략 가능, 생략할 경우 `NULL`) ..
Database/SQL
기본적으로 SQL은 반복을 하지 못하기 때문에, 가령 1부터 10까지의 숫자를 만들고 싶을 떄가 참 난감하다.이런 경우에 대응해서 사용할 수 있는 문법이 바로 `WITH RECURSIVE` 문이다. WITH RECURSIVE자기 자신을 계속 다시 불러오면서 결과를 한 줄 씩 쌓을 수 있는 재귀문 기본 구조언제 멈출지는 ②반복 부분의 `WHERE`절 조건으로 결정한다.WITH RECURSIVE 이름 AS ( -- ① 시작값 (anchor), 비반복문 SELECT FROM UNION ALL -- ② 반복 부분 (recursive) SELECT FROM WHERE -- 반복문 탈출 조건)SELECT * FROM 이름; 예제1) 7일치 날짜 만들기WITH RECURSIVE date..
1. CASE WHEN ~ ENDCASE WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 .. ELSE 값END AS 별칭 ** `THEN` 뒤에 올 수 있는 값들의 형태는 아래와 같이 올 수 있으나, 주의할 점은 서로 값1, 값2, ... 값N이 모두 동일한 타입이어야 한다.숫자문자열컬럼계산식 (ex. `column * 2`)함수 (ex. `IFNULL(column, 0)`) 2. IF: 조건이 참이라면 참일때 값을, 아니라면 거짓일때 값을 출력한다. (중첩 사용 가능)SELECT IF(조건, 참일때값, 거짓일때값) AS 별칭 3. IFNUILL: 컬럼값이 `NULL`이면 대체값을, 아닐 경우 해당 컬럼값을 출력한다. (중첩 사용 가능)SELECT IFNULL(컬럼명, 대체값) ..
REGEXP정규 표현식을 이용해서 데이터를 찾는 연산자WHERE 컬럼 REGEXP '패턴'► 컬럼값이 정규표현식의 패턴과 일치하면 `TRUE`를, 일치하지 않으면 `FALSE`를 반환한다. 정규 표현식(Regular Expression)이란?문자열에서 특정 패턴을 만족하는 부분을 찾을 때 사용하는 형식 언어 대표 정규표현식1. `^` : 문자열의 시작을 표현함-- 컬럼값 중 A로 시작하는 행WHERE 컬럼명 REGEXP '^A' 2. `$` : 문자열의 끝을 표현함-- 컬럼값 중 A로 끝나는 행WHERE 컬럼명 REGEXP 'A$' 3. `.` : 임의의 문자 1개를 표현함-- 컬럼값 중 길이가 3인 문자열을 가진 행WHERE 컬럼명 REGEXP '^...$' 4. `[]` : 문자 집합을 표..
비트 연산이란?정수를 2진수(bit) 단위로 쪼개서 연산하는 것 비트 연산자** SQL에서는 변환할 정수를 2진수로 바꾸지 않고도 비트 연산자를 사용할 수 있다. 1. AND (`&`): 둘다 1이면 1-- 5 = 0101 (2진수)-- 3 = 0011 (2진수)SELECT 5 & 3; -- 10101 & 0011 → 0001 (1) 2. OR(`|`): 하나라도 1이면 1SELECT 5 | 3; -- 70101 | 0011 → 0111 (7) 3. XOR(`^`): 서로 다르면 1, 같으면 0SELECT 5 ^ 3; --60101 ^ 0011 → 110 (6) 4. NOT(`~`): 0이면 1을, 1이면 0으로 정반대SELECT ~5; -- 2SELECT ~3; -- 4~0101 → 10 (2)~..
이제 본격적으로 실습했던 것들 복습해보자. 나는 csv파일을 불러와서 실습하고 싶었을 뿐인데, 스키마 만드는 법조차 모르니까 너무 헤맸다.. 🥲 (강의에서는 그냥 실습부터 시작하기도 했고 Workbench가 아니라 MariaDB로 사용해서 참고하기가 어려웠다.) 마침 딱 실습하려던 캐글 csv파일로 튜토리얼을 알려주는 유튜브 영상이 있어서 참고했다. (아래 링크 참고) 1. MySQL Workbench를 열어보자. 제일 처음 보이는 화면에서 (+) 버튼을 누른다. 2. 'Connection Name'에 새로운 연결 이름을 입력해준다. 나머지 항목들은 따로 건들지 말고 'Test Connection' 버튼을 눌러준다. 'Connection Warning (Local instance 3306' 이라는 경고창..
MySQL Workbench는 MySQL에서 공식적으로 제공하는 GUI 기반의 MySQL 클라이언트 프로그램이다. 설치하는 방법은 유튜브 '생활코딩'님의 영상을 참고했다. 나는 초보자 입장에서 (나중에 내가 보기 편하게) 설치 튜토리얼을 작성할 예정이기 때문에, 혹시 내 블로그 설명이 부족하다고 느끼는 분들은 아래 링크를 참고하면 좋을 것 같다. [🔗 Youtube '생활코딩' - DATABASE2 MySQL - 20.MySQL Workbench] 필자는 코드잇 홈페이지도 참고했는데, 자세하게 설명되있기도 하고 작성일자가 비교적 최근이라 설치하면서 보여지는 화면들이 제일 비슷했다. 🔗 참고 링크 : https://www.codeit.kr/tutorials/12/MySQL-Workbench-%EC%84%A..