[TIL#4] 엑셀보다 쉽고 빠른 SQL (3)

강민지·2025년 2월 19일
0

데이터분석_TIL

목록 보기
4/81

SQL로 가공하기

1. 문자 포맷이 다를 때

REPLACE: 특정 문자를 다른 것으로 바꾸는 기능

  • replace(바꿀 컬럼, 현재 값, 바꿀 값)

SUBSTRING: 필요한 부분만 골라서 조회할 수 있는 기능

  • substr(조회할 컬럼, 시작위치, 글자수)

CONCAT: 여러 컬럼의 문자를 합칠 수 있는 기능

  • concat(붙이고싶은값1, 붙이고싶은값2, ...)
    - 컬럼, 한글, 영어, 숫자, 기타 특수문자를 붙일 수 있음

<실습>

select substr(addr, 1,2) as "지역", cuisine_type , avg(price) "평균 금액"
from food_orders
where addr like "%서울%"
group by 1,2 # 1번, 2번 컬럼을 의미 (각각 substr(addr,1,2)와 cuisine_type)
order by 3 desc

select substr(email,10) "도메인", count(1) "고객 수", avg(age) "평균 연령"
from customers
group by 1

select concat('[', substr(addr,1,2), ']', restaurant_name, '(', cuisine_type,')') "음식점", count(1) "주문건수"
from food_orders
group by 1
order by 2 desc

2. 조건에 따라 포맷을 다르게 변경해야 할 때

IF문

  • if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)

CASE문

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

<실습>

조건문으로 서로 다른 수식 적용
SELECT case when deliverytime>30 then price*0.1*if(addr like '%서울%',1.1,1)
when delivery_time between 26 and 30 then price*0.05*if(addr like '%서울%',1.1,1)
else 0 end_ '수수료'
FROM food_orders

0개의 댓글