커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
4-8. 실습 피드백에 관한 질문
엑셀보다 쉽고 빠른 SQL
챕터 4
북마크
원*규
댓글
1
추천
0
조회수
6
조회수
6
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


안녕하세요.

튜터님께서 아래와 같이 피드백을 주셨습니다.

"CASE 문에서 조건은 위에서부터 차례로 평가되기 때문에, 범위가 넓은 조건이 먼저 오면 아래 조건들이 실행되지 않고 무시될 수 있습니다."


이 때, case when 문의 구분하는 순서에 대해 궁금한 점이 있어 질문 드립니다.


코드를 아래와 같이 3만 이하, 1만 이하, 5천 이하로 구분하게 되면 아래와 같이 정리가 된다고 생각했습니다.

3만 이하로 설정된 값 중~1만 이하는 재구분

1만 이하로 설정된 값 중~5천 이하는 재구분


3만 이하로 모두 설정했으므로 해당 CASE들은 더 이상 구분되지 않고, 해당 행까지 구분되지 않은 데이터들에 대해서만 when 이하가 적용 되나요?


감사합니다.






작성한 코드 및 에러 메세지

select
	restaurant_name,
	case
		when avg_price > 30000 then 4
		when avg_price <= 30000 then 3
		when avg_price <= 10000 then 2
		when avg_price <= 5000 then 1
	end "price_group",
	case
		when avg_age < 30 then 1
		when avg_age >= 30 and avg_age < 40 then 2
		when avg_age >= 40 and avg_age < 50 then 3
		else 4
	end "age_group"
from
	(
	select
		a.restaurant_name,
		avg(a.price) "avg_price",
		avg(b.age) "avg_age"
	from food_orders a
	inner join customers b on a.customer_id = b.customer_id
	group by 1
	) cal
order by restaurant_name;
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴