728x90
반응형
7. SUBQUERY
- 자주 쓰는 Subquery = WHERE, SELECT, FROM 절에서 유용하게 사용
WHERE은 조건문이므로, Subquery의 결과를 조건에 활용하는 방식으로 유용하게 사용
SELECT는 결과를 출력해주는 부분이므로, 기존 테이블에 함께 보고싶은 통계 데이터를 손쉽게 붙이는 것에 사용
FROM은 SELECT와 이미 있는 테이블을 JOIN하고 싶을 때 사용
8. WITH
- Subquery 사용으로 복잡해진 쿼리문을 깔끔하게 정리할 수 있다
ex) 이러한 쿼리문을
select c.title,
a.cnt_checkins,
b.cnt_total,
(a.cnt_checkins/b.cnt_total) as ratio
from
(
select course_id, count(distinct(user_id)) as cnt_checkins from checkins
group by course_id
) a
inner join
(
select course_id, count(*) as cnt_total from orders
group by course_id
) b on a.course_id = b.course_id
inner join courses c on a.course_id = c.course_id
WITH절을 사용하면
with table1 as (
select course_id, count(distinct(user_id)) as cnt_checkins from checkins
group by course_id
), table2 as (
select course_id, count(*) as cnt_total from orders
group by course_id
)
select c.title,
a.cnt_checkins,
b.cnt_total,
(a.cnt_checkins/b.cnt_total) as ratio
from table1 a inner join table2 b on a.course_id = b.course_id
inner join courses c on a.course_id = c.course_id
이외에 유용한 문법
문자열 쪼개보기 : SUBSTRING_INDEX 라는 문법 사용
문자열 일부만 출력하기 : SUBSTRING 이라는 문법 사용
728x90
반응형