Where 조건절을 통한 데이터 필터링
- 숫자형 데이터 조건 주기
= Select 열 이름1, 열 이름2 From 테이블명 Where 비교할 열 이름 = 숫자;
- 문자/날짜형 데이터 조건 주기
= Select 열 이름1, 열 이름2 From 테이블명 Where 비교할 열 이름 = '문자';
* Where 조건절에 숫자에 대한 조건을 줄 때는 작은따옴표(' ')를 사용하지 않고 숫자를 나타내면 되지만,
문자에 대한 조건을 줄 때는 작은따옴표(' ')를 사용해야 한다.
Ex 1) 가입금액이 1백만원 이상인 고객들의 고객번호, 계약번호, 가입금액을 추출해보자
= Select ID, CNRT_NO, CNRT_AMT From INS_INFO Where CNRT_AMT >= 1000000;
Ex 2) 상품명이 '다이렉트자동차보험'인 고객들의 고객번호, 계약일, 상품명을 추출하고 고객번호는 오름차순으로 정렬해보자
= Select ID, CNRT_DT, PRDT_NM From INS_INFO Where PRDT_NM = '다이렉트자동차보험' Order by ID;
Ex 3) 상품 계약일이 2013년 04월 16일 이후인 고개들의 고객번호, 계약일, 상품명을 추출하고 고객번호는 오름차순으로 정력해보자.
= Select ID, CNRT_DT, PRDT_NM From INS_INFO Where CNRT_DT >= 20120416 Order by ID;
Q : 계약일에 2012-04-16 이렇게 되어있는데, Where 조건에는 20120416 이렇게 쓰는 걸까??
* SELECT > FROM > WHERE > ORDER BY 순으로 ORDER BY절은 문장의 끝에 사용한다.
- 비교연산자
= Select 열 이름 From 테이블명 Where 비교할 열 이름 비교연산자 비교할 대상;
비교연산자 | 설명 |
A = B | A와 B가 같다. |
A <> B / A != B / A ^=B | A와 B가 같지 않다. |
A < B | A가 B보다 작다. = A가 B 미만이다. |
A <= B | A가 B보다 작거나 같다. = A가 B 이하이다. |
A > B | A가 B보다 크다. = A가 B 초과이다. |
A >= B | A가 B보다 크거나 같다. = A가 B 이상이다. |
BETWEEN A AND B | 지정된 두 값 사이에 있는지 확인하는 경우 사용한다. |
IS NULL | NULL 값을 가진 여을 검색하는 경우 사용한다. |
IS NOT NULL | NULL 값이 아닌 열을 검색하는 경우 사용한다. |
- 산술 연산자
Select문에서 사용되는 경우
= Select 열 이름1, 열 이름2 산술연산자 열 이름3 As 새로운 이름 From 테이블명;
* Select 문에서 사용하는 산술연자는 새로운 별칭을 주는 AS와 같이 사용되는 경우가 많다.
Where 조건절에서 사용되는 경우
= Select 열 이름 From 테이블명 Where (열 이름1 산술연산자 열 이름2) 비교 연산자 비교할 대상;
* 산술연산자(+, -, /, *) 곱하기, 나누기는 더하기, 빼기 보다 우선이라는 것을 명심하자!
같은 우선순위일 경우, 좌측에서 우측순으로 연산이 진행되고 괄호를 사용하면 우선순위가 최우선이 된다.
Ex 1) PURCHASE_TRAN 테이블에서 올해 구입금액이 1백만원 이상인 고객의 고객번호와 올해 구입금액을 나타내보자
= Select ID, PURCHASE_AMT From PURCHASE_TRAN Where PURCHASE_AMT >= 1000000;
Ex 2) PURCHASE_TRAN 테이블에서 작년 구입금액이 1백만원 이상 5천만원 이하인 고객의 고객번호와 작년 구입금액을 나타내보자
= Select ID, LAST_AMT From PURCHASE_TRAN Where LAST_AMT BEETWEN 1000000 AND 50000000;
Ex 3) PURCHASE_TRAN 테이블에서 올해 구입건수가 작년도 구입건수보다 많은 고객들의 고객번호, 올해 구입건수, 작년도 구입건수를 나타내고 고객번호를 기준으로 오름차순 정렬해보자
= Select ID, PURCHASE_CNT ,LAST_CNT From PURCHASE_TRAN Where PURCHASE_CNT > LAST_CNT Order by ID;
Ex 4) 올해 판매가격의 순 매출마진이 10%라고 가정하자. PURCHASE_TRAN 테이블에서 순이익의 별칭을 INCOME_AMT라고 사용하여 올해 고객별 순이익을 구해보자
= Select ID, PURCHASE_AMT*0.1 AS INCOME_AMT From PURCHASE_TRAN;
* 순 매출마진(Net Sales Margin)은 '순이익/총 매출액'이다.
Ex 5) 올해 고객의 건당 구입금액을 구하고, 별칭은 TICKET_SIZE로 설정해보자
= Select PURCHASE_AMT/PURCHASE_CNT AS TICKET_SIZE From PURCHASE_TRAN;
Ex 6) 보험원장 테이블(INS_INFO 테이블)에서 실제 살아있는 계약만 추출하여 고객번호, 계약번호 및 가입금액을 추출해보자.
= Select ID, CNRT_NO, CNRT_AMT From INS_INFO Where CNCL_DT IS NULL;
Ex 7) 보험원장 테이블(INS INFO 테이블)에서 해지된 계약만추출하여 고객번호, 계약번호 및 가입금액을 출력해보자.
= Select ID, CNRT_NO, CNRT_AMT From INS_INFO Where CNCL_DT IS NOT NULL;
* 인당 구매금액, 인당 가입금액 : 티켓사이즈(TICKET SIZE)
* NULL값인 행을 찾을 때는 IS NULL, NULL값이 아닌 행을 찾을 때는 IN NOT NULL
NULL 값은 데이터가 존재하지 않는 다는 것을 의미하며, '=' 연산자를 사용할 수 없다. 사용하면 에러남
* NULL값은 오름차순 혹은 내림차순으로 정렬 시 가장 큰 값으로 분류된다.
- COALESCE 함수의 문법
= COALESCE (EXPRESSION 1, EXPRESSION 2, ... , EXPRESSION N)
이 함수는 문법에서 정의된 열 중 NULL이 아닌 첫 번째 값을 화면에 출력하는 역할을 한다. 이 함수는 NULL값을 제외한 가장 왼쪽에 남는 값이라고 생각하면 이해하기 쉽다. COALESCE('A', 'B')인 경우, NULL값이 없으므로 'A'가 리턴될 것이고 COALESCE(NULL, 'B', 'C')인 경우 'B'가 리턴될 것이다.
통계학에서는NULL값을 결측치(Missing Value)라고도 부른다.
'Marketing Study' 카테고리의 다른 글
[브랜딩이란?] 현대카드 정태영 CEO_브랜드 특강 정리_2 (2) | 2024.01.08 |
---|---|
[브랜딩이란?] 현대카드 정태영 CEO_브랜드 특강 정리_1 (1) | 2024.01.01 |
SQL 공부 (2) (0) | 2022.03.30 |
SQL 공부 (0) | 2022.03.17 |
퍼포먼스 마케팅 용어(3) (0) | 2022.03.15 |