상세 컨텐츠

본문 제목

[SQL 스터디_2팀] 5주차_강의노트

심화 스터디/SQL 스터디

by yyss 2023. 5. 9. 10:24

본문

작성자: 16기 노연수

본 게시글은 datacamp Data Manipulation in SQL 강의를 기반으로 작성되었습니다.

 

1. CASE statements

1) CASE 문의 구성

- Case 문은 WHEN, THEN, ELSE로 구성됨

WHEN 절은 주어진 조건을 테스트하고, 주어진 조건이 TRUE이면 THEN 절 뒤에 지정한 값을 반환한다. 모든 WHEN 절의 조건이 참이 아닌 경우 ELSE 뒤에 지정된 값을 반환한다. 마지막으로 END을 적고 지정할 이름을 AS 뒤에 작성한다. CASE 문에서 여러 논리 조건을 테스트하려면 WHEN 절 내에서 AND를 사용할 수 있다.

2) NULL

별칭을 제외한 전체 CASE 문을 WHERE에 포함한 다음, 포함하거나 제외할 항목을 지정한다. 아래 CASE 문을 보면 NULL이 아닌 행을 유지하는 경우이다.

3) CASE WHEN with aggregate functions

- CASE 문은 Categorizing data, Filtering data, Aggregating data에 활용될 수 있어 COUNT, SUM, AVG와 같은 집계 함수 안에 포함하여 작성할 수 있다.

- COUNT

THEN절 뒤에 텍스트 문자열 대신 고유한 ID를 반환하여 CASE 문이 반환하는 모든 ID를 COUNT할 수 있다.

- SUM, AVG

득점한 홈 골을 반환하여 SUM을 통해 총 합계를 구한다. SUM 대신 AVG를 사용하면 평균을 계산한다.
1, 0을 반환하도록 만든 CASE문과 AVG 집계 함수를 활용하여 백분율을 계산할 수도 있다.

- ROUND

ROUND를 사용하여 소수점을 지정하여 간단하게 나타낼 수 있다.

 

2. Short and Simple subqueries

1) Subquery와 Simple subqueries

Subquery 

: Subquery는 다른 쿼리 안에 중첩된 쿼리이며, intermediary transformations에 유용하다.

- SELECT, FROM, WHERE, GROUP BY와 같은 쿼리의 모든 부분에 배치할 수 있다.

- 위치는 최종 데이터의 모양에 따라 다르다.

- 스칼라 수량, 리스트, 테이블 등을 반환할 수 있다.

- Subqueries를 이용하면 요약된 값을 비교할 수 있고, 데이터를 더 잘 구조화하거나 재구성할 수 있으며, join할 수 없는 테이블의 데이터를 결합할 수 있다.

 

Simple subqueries

: 다른 쿼리 내부에 중첩된 쿼리인데 자체적으로 실행하여 결과를 얻을 수 있는 쿼리

- 간단한 하위 쿼리도 전체 쿼리에 대해 한 번 평가된다. 하위 쿼리 내부의 정보를 처리하고 필요한 정보를 찾은 다음 OUTER 쿼리의 정보 처리로 이동한다.

WHERE의 하위 쿼리가 먼저 처리되어 득점한 홈 골 전체 평균을 계산하고, 기본 쿼리로 이동하여 하위 쿼리에서 생성한 것을 단일 집계 값처럼 처리한다.

2) Subqueries in FROM

- FROM 문의 하위 쿼리는 데이터를 재구성하고 변환하는데 강력하며, 데이터를 다른 모양으로 변환하거나 계산하기 전에 미리 필터링할 수 있다.

- FROM의 하위 쿼리는 집계 정보의 집계를 계산할 때 유용하다.

- 기본 쿼리의 FROM 문에서 두 개 이상의 하위 쿼리를 만들 수 있으며, 각 하위 쿼리에 별칭을 지정하고 조인할 수 있다.

- 데이터베이스의 기존 테이블에 하위 쿼리를 조인할 수 있는데, 열이 있는지 확인이 필요하다.

3) Subqueries in SELECT

- SELECT 하위 쿼리는 단일 집계 값을 반환하는 데 사용되고, 수학적인 계산에도 사용된다.

- 하위 쿼리가 여러 행을 반환하면 오류 발생하기 때문에단일 값을 반환해야 하고, 올바른 위치가 중요하다.

 

4) Subqueries everywhere

- SELCET, FROM, WHERE 내에 여러 subqueries를 포함할 수 있다. 하지만 쿼리가 길어지고 읽기 어려울 수 있어 쿼리 형식을 올바르게 작성하는 것이 중요하다.

- Subqueries는 추가 컴퓨터 성능을 필요로 한다. 데이터베이스의 크기, 추출한 레코드 수에 따라 쿼리를 실행하는 데 걸리는 시간이 늘어날 수 있다.

- 따라서 필요한 결과를 얻기 위해 특정 하위 쿼리가 필요한지 여부를 항상 물어보아야 한다.

관련글 더보기

댓글 영역