[방법 1] 없는 값을 제외해주기
SELECT
restaurant_name
-- 그냥 평균 계산
, avg(rating) avg_rating
--사용할 수 없는 값 Null 처리
, avg(IF(rating<>'Not given', rating, null)) avg_rating2
FROM
food_orders fo
GROUP BY
1 ;
[방법 2] 값의 제외
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
--b.customer_id 컬럼에 데이터가 없는 경우 제외
where b.customer_id is not null ;
[방법 3] 다른 값을 대신 사용하기
select a.order_id,
a.customer_id,
a.restaurant_name,
a.price,
b.name,
b.age,
coalesce(b.age, 20) "null 제거",
b.gender
from food_orders a left join customers b on a.customer_id=b.customer_id
where b.age is null;
상식적이지 않은 데이터의 예시
[방법] 조건문으로 값의 범위 지정
SELECT
name
, age
, CASE WHEN age < 15 THEN 15
WHEN age >= 80 THEN 80
ELSE age END re_age
FROM customers c