[내일배움캠프] 데이터 트랙/사전캠프

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

554083460 2025. 4. 21. 19:38

 

 

SQL: 엑셀보다 쉽고 빠른 SQL 3-4

 

 

1. if

- if(조건, 조건 만족했을 때, 조건 만족하지 못했을 때)

- 조건에 따라 값 할당

- 예시

if(age >= 20, '20세 이상', '기타')

 

2. case

- case when 조건 1 then 값 1

           when 조건 2 then 값 2

           else 값 3 end

- 여러 개의 조건에 따라 값 할당

- 예시

case when cuisine_type = 'Korean' then '한식'
     when cuisine_type = 'Japanese' then '일식'
     else '기타' end "음식 종류"

 

 


 

 

학습하며 겪었던 문제점 & 에러 복기

 

 

1. 함수 안에 if문 넣기

 - 틀린 이유: 괄호가 여러 번 중첩될 때, 괄호의 위치가 헷갈려 잘못 작성했다.

 - 내가 한 시도: 

select substr(if(email like '%gmail%', replace(email, 'gmail', '@gmail'), email, 10)) "이메일 도메인",
       count(1) "고객 수",
       avg(age) "평균 연령"
from customers
group by 1
 

- 해결 방법: 코드의 의미를 파악하며 괄호의 범위를 지정한다. 

이 문제의 경우, substr(if문, 10) / if(조건, replace문, 조건 미충족 시 값) 과 같은 구성이다.

select substr(if(email like '%gmail%', replace(email, 'gmail', '@gmail'), email), 10) "이메일 도메인",
       count(1) "고객 수",
       avg(age) "평균 연령"
from customers
group by 1

 

- 개선점: 코드를 단순 암기하기보다 원리를 이해하고 의미를 파악하는 것이 더 도움이 된다.
  함수를 처음 쓸 때부터 여는 괄호와 닫는 괄호 둘 다 쓴다. '()'