SQL 마지막 5주차 학습목표:
- 데이터에서 예상하지 못한 값이 나왔을 때 (이상한 값, 값이 없음 등), 분석에 적절하에 처리한다
- SQL 로 엑셀에서 자주 사용하는 형태로 데이터를 만든다
- 업무에 활용할 수 있는 다양한 SQL 심화 문법을 익힌
Subquery, Join 복습
#Subquery: Query 결과를 Query 에 다시 활용하는 것
#기본 형식
select column1, special_column
from
( /* subquery */
select column1, column2 special_column
from table1
) a
#join: 두 개 이상의 테이블 결합시 사용. 형태에 따라 Left join, inner join 등등
#기본 형식
-- LEFT JOIN
select 조회 할 컬럼
from 테이블1 a left join 테이블2 b on a.공통컬럼명=b.공통컬럼명
-- INNER JOIN
select 조회 할 컬럼
from 테이블1 a inner join 테이블2 b on a.공통컬럼명=b.공통컬럼명
조회한 데이터에서 아무 값도 없다면?!
테이블에 잘못된 값이 들어있을 수 있다. 사용할 수 없는 데이터가 있거나 없는 경우는 흔한 편이다.
방법 1. 없는 값을 제외해주기
#Mysql 에서는 사용할 수 없는 값일 때 해당 값을 연산에서 제외해줍니다. → 0으로 간주
#즉 평균 rating 을 구하는 쿼리를 아래와 같이 작성했을 때 실제 연산에 사용되는 데이터는 다음과 같습니다.
select restaurant_name,
avg(rating) average_of_rating,
avg(if(rating<>'Not given', rating, null)) average_of_rating2
from food_orders
group by 1
따라서, 명확하게 연산을 지정해주기 위해 null 문법을 이용
select a.order_id,
a.customer_id,
a.restaurant_name,
a.price,
b.name,
b.age,
b.gender
from food_orders a left join customers b on a.customer_id=b.customer_id
where b.customer_id is not null
다른 케이스로, 만약 조회한 데이터가 상식적이지 않은 값일때는?
이러한 경우에는 조건문으로 값의 범위를 지정해볼 수 있다.
조건문으로 가장 큰 값, 가장 작은 값의 범위를 지정해 주면된다. (상식적인 수준 안에서 지정해야함)
'내일배움캠프 AI 웹 프로그래밍' 카테고리의 다른 글
내일배움캠프 75일차_SQL_날짜 데이터 (2) | 2023.11.06 |
---|---|
내일배움캠프 74일차_SQL_Pivot Table_단축키 (0) | 2023.11.06 |
내일배움캠프 72일차_SQL 실습: User Segmentation & Subquery (0) | 2023.11.06 |
내일배움캠프 71일차_여러번의 연산을 한 번의 SQL 문으로(Subquery) (0) | 2023.11.06 |
내일배움캠프 70일차_SQL 실습이 곧 성과를 나타낸다 (0) | 2023.11.06 |