[내일배움캠프 사전캠프]

[QA/QC_2기]가공 단계: 조건절_250425

mulmoknnhama 2025. 4. 25. 23:56

모르는 것을 알아가는 것, 공부의 또 다른 재미


3주차 강의 (3-3. ~ 3-7.)

 

SQL 중 가공하는 단계에서 replace, substr, concat, group by, order by 말고도

추가 도우미가 있다.

 

 

조건을 담당하는 ifcase이다.

 

select if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)
from table_1

if: 조건에 따라 다른 조건을 적용하고 싶을 때, 조건을 지정해주는 기초 문법

 

select case when 조건1 then 값(수식)1
       when 조건2 then 값(수식)2
       else 값(수식)3 end

case: if의 확장판. 다중조건을 적용하고 싶을 때, 조건을 지정해주는 문법

 

where도 조건절 아닌가?

-기본 쿼리문에서 데이터에 들어가는 특정 조건 필터링, if는 조건으로 이 것은 a고 다른 것은 b로 구분지음

 


여기까지가 문법이고, 그 이후부터는 실습!

 

실습으로 들어가보자.

1) [실습] 10세 이상, 30세 미만의 고객의 나이와 성별로 그룹 나누기 (이름도 같이 출력)

select name,
       age,
       gender,
       case when (age between 10 and 19) and gender='male' then "10대 남자"
            when (age between 10 and 19) and gender='female' then "10대 여자"
            when (age between 20 and 29) and gender='male' then "20대 남자"
            when (age between 20 and 29) and gender='female' then "20대 여자" end "그룹" 
from customers
where age between 10 and 29

정답지

select name,
       age,
       gender,
       case when (age 10 and 19) and gender='male' then "10대 남자"
       case when (age 10 and 19) and gender='female' then "10대 여자"
       case when (age 20 and 29) and gender='male' then "20대 남자"
       case when (age 20 and 29) and gender='female' then "20대 여자" end "그룹" 
from customers
where age between 10 and 29

처음 작성했던 쿼리문

 

이와 같이 당황해서 빠진 것도 있고, 집어넣지 말아야 될 것이 있는데

꼼꼼히 읽어보고 천천히 생각하며 작성!


실습 부분에서는 강사님이  "문제에서 흐름을 먼저 보고, 흐름을 정리해서 그 다음에 쿼리문을 작성하면 됩니다." 라고 말하시는데, 침착하게 읽어보고 당황하지 말라고 하시는 것 같다. 하지만 '그래도 복잡해서 머리 어지러운데' 라고 생각했는데,  강의 중간에 맥락을 파악하면 되니까 너무 복잡하게 생각하지 말라고 하신다.

 

순간 '머릿 속을 읽혔나?' 생각하지만, 그만큼 처음접하는 사람도 있으니 내용을 어렵지 않게 이해시켜주시려고 노력해주시는 것 같다.

 

결국은 반복과 암기... 힘내자!

다음은 4-5주차 정복을 향해서~