[SQL]TIL 쉽고 빠른 SQL 4주차(24-04-17)

오정연(DATA_2기)·2024년 4월 17일

SQL

목록 보기
3/12

Subquery

여러 번의 연산을 한 번의 SQL 문으로 수행하기

  • Subquery 문의 기본 구조
  • Sub 라는 명칭에서 알 수 있듯이, Query 안에 sub 로 들어간 구문이라고 생각해주시면 됩니다.

select column1, special_column
from
( / subquery /
select column1, column2 special_column
from table1
) a
select column1, column2
from table1
where column1 = (select col1 from table2)

예시

- [실습] 음식점의 평균 단가별 segmentation 을 진행하고, 그룹에 따라 수수료 연산하기

(수수료 구간 - 

  ~5000원 미만 0.05%

  ~20000원 미만 1%

  ~30000원 미만 2%

  30000원 초과 3%)

select restaurant_name,
price_per_plate*ratio_of_add "수수료"
from
(
select restaurant_name,
case when price_per_plate<5000 then 0.005
when price_per_plate between 5000 and 19999 then 0.01
when price_per_plate between 20000 and 29999 then 0.02
else 0.03 end ratio_of_add,
price_per_plate
from
(
select restaurant_name, avg(price/quantity) price_per_plate
from food_orders
group by 1
) a
) b

JOIN

필요한 데이터가 서로 다른 테이블에 있을 때 조회하기
JOIN 은 기본적으로 엑셀의 Vlookup 과 유사합니다

LEFT JOIN : 공통 컬럼 (키값) 을 기준으로, 하나의 테이블에 값이 없더라도 모두 조회되는 경우를 의미합니다.
INNER JOIN : 공통 컬럼 (키값) 을 기준으로, 두 테이블 모두에 있는 값만 조회합니다.
즉, 위의 예시에서 주문번호 14의 경우, 고객에 대한 정보가 고객 정보에 없으므로 조회 시 제외됩니다. !

[4주차후기]
어느정도 내용은 이해하였지만..아직은 자신감이 부족한 상태이다..
이걸 실무에서도 바로 사용할 수 있을까ㅠㅠ

profile
데이터 새내기

0개의 댓글