Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Two Pointer
- bottleneck
- SQL
- numpy
- Depthwise Separable Convolution
- 연산량 감소
- Inductive Bias
- BFS
- 1x1 Convolution
- 백준
- 데이터모델링
- SQLD 후기
- resnet
- outer join
- CROSS JOIN
- 식별자
- feature map
- dp
- 그래프
- 인접행렬
- depthwise convolution
- dfs
- 엔터티
- 인접리스트
- 정규화
- pytorch
- skip connection
- SQLD
- get_dummies()
- mobilenet
Archives
- Today
- Total
SJ_Koding
SQLD 대비 (7) - SQL 문법 및 라이브러리_2 본문
이전 글과 이어지는 글입니다. 해당 정리글은 아래의 유튜브 영상을 참고하여 만들었습니다. 문제 시 삭제하겠습니다.
빨간색 형광펜은 강의에서 강조한 부분, 노란색 형광펜은 추가 서치로 내용을 '직접' 보강한 부분입니다.
Group by
- Group by는 집합(테이블) 내에서 하나 혹은 여러 행을 그룹화 하여 집계함수(SUM, MIN, AVG등)를 이용하는 것
- Having 절을 이용하여 group by 된 상태에서 조건 추가 가능
SELECT customer_id, avg(amount) 평균, sum(amount) 합계
FROM customer_orders
GROUP BY customer_id
Having
- Having은 group by와 같이 다니는 조건절이다.
- Where 절은 group by 하기 전 조건에 해당하고, having은 group by 연산 이후 조건이다.
SELECT customer_id, avg(amount) 평균, sum(amount) 합계
FROM customer_orders
GROUP BY customer_id
Having avg(amount) > 100
분기문
1. VNL (MySQL에서 COALESCE)
- NVL은 null인 값을 제거 하기 위한 일반 함수이다.
- Null 대신 특정 숫자나 다른 값을 출력 할 수 있다.
- NVL(값, 'null일 때 출력 값')
2. VNL2
- NVL2는 NVL에 의해 파라미터가 하나 더 있다.
- NVL(값, 'null이 아닐 때 출력 값', 'null일 때 출력 값')
SELECT id, name, nvl(bonus_type, '해당없음') as NVL_, nvl2(bonus, 보너스 대상자', '미 대상자') as NVL2_
from SALARY
3. DECODE
- Decode는 한 컬럼에 여러가지 조건을 적용 하여 출력 할 때 사용한다.
- Decode(값, 조건1, 결과1, 조건2, 결과2, ...)
SELECT id, name, decode(bonus_type, 'AB', '1등급', 'AC', '2등급', 'FA', '4등급', '미 대상자' as decode_
FROM SALARY
4. CASE WHEN
- 여러가지 컬럼 및 조건으로 다양한 조건을 적용해야 할 때 사용한다.
- 하나의 컬럼 값으로 비교 할 때와 여러 컬럼으로 비교 할 때와 문법을 두가지로 나눠 사용할 수 있다.
- 나열된 순으로 조건 비교를 한다.
/* 첫 번째 방법: SEARCHED_CASE_EXPRESSION */
SELECT ID, NAME, CASE bonus_type WHEN 'AB' THEN 1등급 WHEN 'AC' THEN '2등급' END as case_
FROM salary
/* 두 번째 방법: SIMPLE_CASE_EXPRESSION */
SELECT CASE WHEN bonus_type = 'AB' THEN '1등급' WHEN bonus_type = 'AC' THEN '2등급' END as case2_
FROM salary
rownum, rowid, with문
1. rownum
- Oracle에서 출력 rows를 설정하는 기능이다.
- MSsql 에서는 top() 기능으로 대체 하여 사용 할 수 있다.
/* ORACLE */
SELECT *
FROM salary
WHERE rownum <3
/* MSsql */
SELECT top(2) *
FROM salary
2. rowid
- Oracle에서 row가 생성 될 때 부여되는 row의 고유 id.
- Rowid로 조건을 입력할 수도 있음
- 데이터 객체번호, 상대적파일번호, 블록번호, 행번호의 조합
SELECT rowed, *
FROM salary
3. with문
- 일종의 임시적인 view 테이블(데이터가 저장되지 않은 테이블)이다.
- 특정 sql 블록의 재사용성을 위해 사용된다.
- SQL 실행 속도에 유리하게 작용할 수 있다.
- 여러 번 사용될수록 유리하다.
- 하나의 SQL문에서 여러 개의 with문을 사용할 수 있다.
WITH sql1 as (SELECT *
FROM salary
WHERE rownum < 3) ,
sql2 as (select *
FROM salary
WHERE rownum < 2)
SELECT * FROM sql1 UNION all
SELECT * from sql2
'SQL > SQLD' 카테고리의 다른 글
SQLD 대비 (9) - JOIN (0) | 2023.11.16 |
---|---|
SQLD 대비 (8) - SQL 문법 및 라이브러리_3 (0) | 2023.11.14 |
SQLD 대비 (6) - SQL 문법 및 라이브러리_1 (1) | 2023.11.13 |
SQLD 대비 (5) - 관계형 데이터베이스 (RDBMS) (0) | 2023.11.13 |
SQLD 대비 (4) - 성능 데이터 모델링 및 정규화/반정규화, 데이터베이스 (0) | 2023.11.12 |