subquery
select, from 안에 select, from이 있는 구조 이다.
아래와 같은 구조 이다.
selet column
from
(
select column
from tavle
) a
이런 식의 구조로 이중으로 query가 작성된 것이다.
생각보다 어렵다고 느낄수 있다. 하지만 여러번의 연산을 수행하는 경우와 조건문의 연산 결과를 사용해야 할 때, 조건의 Query결과를 사용하고 싶을 경우가 있다.
아니의 query로 작성하게 된다면 너무 지저분해지고 어려워 지는데 subquery를 이용한다면 깔끔하게 작성이 가능하다.
쉽게 (A+B)*C 라고 생각하고 ( )안의 값을 먼저 더하듯 query 문도 같은 방법이라고 생각하면 된다.
SELECT sido,
cuisine_type,
count_ras,
CASE WHEN count_ras >= 5 THEN IF(total_quantity < 30 ,0.0008 ,0.0005)
else IF(total_quantity < 30 ,0.02 ,0.01)
END '수수료'
FROM
(
SELECT SUBSTR(addr, 1, 2) sido,
cuisine_type,
sum(quantity) total_quantity,
COUNT(DISTINCT restaurant_name) count_ras
FROM food_orders
GROUP BY 2
) a
join
left join
inner join