카테고리 없음

내일배움캠프_QAQC_사전캠프 4일차 (SQL 2일차)

iron-min 2025. 8. 21. 18:36

1. 오늘 배운것!

replace (바꿀 컬럼, 현재 값, 바꿀 값) 컬럼의 이름을 바꿔줄수 있습니다.
substr (조회할 컬럼, 시작위치, 글자 수) 특정 문자만 필요할때 사용합니다.
concat (붙이고 싶은 값1,붙이고 싶은값2,......) 문자를 이을때 사용합니다.

replace 예시

 

 

 

 

 

▶ 서울특별시의 서울값만 가져온 컬럼을 만들게 됩니다.

 

 

 

 

 

▶ 바뀐 이름 컬럼에

    예시) [서울] 감자탕집 이렇게

    항목이 형성됩니다.

if (조건, 조건을 충족할 때, 조건을 충족하지 못할 때)  조건에 만족하는 컬럼을 분류하고 싶을때
case when, then, else, end  명령어와 함께 사용합니다. 예시 참고

 

 

 

 

 

▶ 한식 또는 기타로 음식타입 컬럼이 형성됩니다.

 

 

 

 

 

 

▶ if 문이랑 비슷하게 형성됩니다.

▶ 다만 여러개의 조건을 표시할때 if보다 case 가 훨씬 좋을 것 같습니다.

 

  ★ 굉장히 중요한것!!

  Subquery 문을 배웠습니다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

▶ 괄호안을 드래그해서 첫번째 a 부분이

어떻게 표시되는지 따로 확인 할 수 있습니다.

 

▶ a 부분을 보면 3가지 컬럼이 있는데 이것을 이용해 price_per_plate 항목을 만들어준게 b부분입니다.

 

▶ a,b를 합친 부분에서 수수료 항목을 마지막에 계산해준것입니다.

 

테이블 합치기 join

left join 공통 컬럼을 기준으로 하나의 테이블이 없더라도 모두 조회합니다.
inner join 공통 컬럼을 기준으로 두 테이블 모두에 있는 값만 조회합니다.

 

  

 

 

 

 

 

 

▶ 테이블 1 옆에 a, 테이블 2 옆에 b 는 테이블의 별명을 따로 지어준 것입니다. 편한대로 바꿀수 있습니다.

 

2. 시도해본것

 [숙제1] 다음 조건으로 배달 시간이 늦었는지 판단하는 값을 만들어주세요.

 - 주중 : 25분 이상

 - 주말 : 30분 이상

 [정답] 어렵지 않게 조건을 만들어서 맞출 수 있었습니다.

 

 

  [숙제2] 식당별 평균 음식 주문 금액과 주문자의 평균 연령을 기반으로 Segmentation 하기

   - 평균 음식 주문 금액 기준 : 5,000 이하 / ~10,000 / ~30,000 / 30,000 초과

   - 평균 연령 : ~ 20대 / 30대 / 40대 / 50대 이상

  [정답]  이건 실수가 있어서 조금 시간이 걸렸습니다. 어렵지 않은데 몰랐던 부분이 있어서...

 

3. 해결방법

 [숙제2]에서 실수한부분은 위에 avg_age<40 and avg_age>=30 이 부분을

40>avg_age>=30 요런식으로 작성했는데 이 오류를 찾느라 시간이 걸렸습니다.

부등호를 꼭 and를 써서 처리해야합니다.

 

4. 무엇을 새롭게 알았는지

SQL은 파이썬보다 쉬워서 자신감이 붙는것 같습니다.

문제가 쉬운것도 있겠지만 더 어려운 문제도 풀 수 있을 것 같네요.