🥑 오늘 배운 것
- Subquery 서브쿼리 문
여러번의 연산을 수행해야 하는 경우, 조건문에 연산 결과를 사용해야 할 때, 조건에 쿼리 결과를 사용하고 싶을 때 등 여러 연산을 효율적으로 수행할 수 있다.
쿼리 안에 서브로 들어간 구문이라고 생각하면 된다.
괄호로 지정하고 서브쿼리의 별명을 만들어 주어야 한다.
select column1, special_column
from
**(** /* subquery */
select column1, column2 special_column
from table1
**) a**
-서브쿼리를 활용한 User Segmentation
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
- 서브쿼리 a : 레스토랑 이름, 평균 단가(price/quantity)를 price_per_plate로 지정
- 서브쿼리 b : 서브쿼리 a의 price_per_plate 의 가격에 따라 수수료율 적용
- 계산된 결과를 다시 사용하여 수수료 계산
단계별로 계산하는 식을 적어줌으로서 복잡한 연산을 쉽게 적어줄 수 있다.
-음식점의 지역과 평균 배달시간으로 segmentation 하기
지역조건 : 전체주소가 아닌 앞 두글자(시도)만 [시도]
평균배달시간 조건 : 20분 이하/20~30분/30분초과
-JOIN 함수
데이터가 있는 테이블이 다를 때 각 테이블에서 정보를 가져올 수 있다.
엑셀 Vlookup과 유사한 원리를 가진 기능이지만 나는 엑셀을 많이 사용할 일이 없어서 해당 기능 사용해 본 적은 없다.
조인하는 방법
LEFT JOIN : 공통컬럼을 기준으로 하나의 테이블에 값이 없더라도 모두 조회
INNER JOIN : 공통컬럼을 기준으로 테이블 모두에 있는 값만 조회
-- LEFT JOIN
select 조회 할 컬럼
from 테이블1 a left join 테이블2 b on a.공통컬럼명=b.공통컬럼명
-- INNER JOIN
select 조회 할 컬럼
from 테이블1 a inner join 테이블2 b on a.공통컬럼명=b.공통컬럼명
-고객의 주문 식당 조회하기
(조회 컬럼 : 고객 이름, 연령, 성별, 주문식당) *고객명으로 정렬하고, 중복이 없도록 조회
select distinct a.name ,
a.age,
a.gender,
b.restaurant_name
FROM customers a inner join food_orders b on a.customer_id=b.customer_id
중복되는 값이 없도록 distinct를 사용하여 중복값을 제거해준다.
🥑 적용
1~3강에서 다룬 내용을 가지고 실습하는 내용이 대부분이다. 분명히 다뤘던 내용인데 벌써 기억이 나지 않는 것들이 몇개 있었다.
체크해두고 개념을 다시 이해하려고 노력했따. 세그멘테이션을 하는 것이 어렵지는 않지만 조금 귀찮은 과정이라 더 쉽게 하는 방법이 있으면 알고싶다!
'Data' 카테고리의 다른 글
[Mysql] SQL 문법연습 걷기(1~6) +업데이트 (1) | 2024.09.03 |
---|---|
[SQL] 배운것들 총집합-엑셀보다 쉽고 빠른 SQL 완강 후기 (3) | 2024.09.02 |
[SQL] 엑셀보다 쉽고 빠른 SQL 3강 정리 (feat. DBeaver) (0) | 2024.08.30 |
[SQL] 엑셀보다 쉽고 빠른 SQL 2주차 수강후기 SQL 강의 (2) | 2024.08.29 |
[SQL 강의] 비전공자의 엑셀보다 쉽고 빠른 SQL 1주차 수강 후기 왕초보 추천 (0) | 2024.08.29 |