SQL문 기본 구조
select : 데이터 조회
from : 어떤 테이블에서 가져올지
where : 조건 주기
group by : 범주 지정
order by : 쿼리 결과를 정리
순서
replace
블루라고 적힌 부분을 핑크로 바꿔줘 라는 뜻
replace(바꿀 컬럼, 현재 값, 바꿀 값)
substr : 특정한 문자만 뽑아주는 구문
1번째 글자부터 두글자씩 뽑아와달라는 의미. 결과 : 서울
concat : 붙여줘라는 뜻.
join 함수처럼 문자열을 합할 수 있다.
지금 컬럼이 세 가지가 있는데 (select)
group by 로 묶을 때 명시적으로 하기 위해서는 컬럼명을 다 적어도 되고
첫번째 컬럼, 두 번째 컬럼을 묶어준다는 의미로 1, 2 라고 써도 똑같음.
끝에 숫자 안적으면 마지막까지임.
if (조건, 조건 충족할때, 조건을 불충족할때)
조건충족할ㄹ 때 replace
case when 으로 조건주기
in 은 묶기
끝낼때는 end
앞의 when 두 조건에 부합하지 않는 것이 없을 경우는
else 를 생략해도 됨.
select restaurant_name,
price/quantity "단가",
cuisine_type,
order_id,
case when (price/quantity <5000) and cuisine_type='Korean' then '한식1'
when (price/quantity between 5000 and 15000) and cuisine_type='Korean' then '한식2'
when (price/quantity > 15000) and cuisine_type='Korean' then '한식3'
when (price/quantity <5000) and cuisine_type in ('Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '아시아식1'
when (price/quantity between 5000 and 15000) and cuisine_type in ('Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '아시아식2'
when (price/quantity > 15000) and cuisine_type in ('Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '아시아식3'
when (price/quantity <5000) and cuisine_type not in ('Korean', 'Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '기타1'
when (price/quantity between 5000 and 15000) and cuisine_type not in ('Korean', 'Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '기타2'
when (price/quantity > 15000) and cuisine_type not in ('Korean', 'Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '기타3' end "식당 그룹"
from food_orders
서울을 포함하면 1.1배, 아닐때는 1배
case 안에 if 문을 쓸 수 있다.