# 이제까지 배운 개념들
1. with 가상테이블
2. inner join / left join / self join / cross join
3. count(*) / count(컬럼) / count(distinct)
4. 함수 over (partition by 컬럼 order by 컬럼) as 별칭
윈도우 함수는 그냥 컬럼생성용, where 조건으로 사용가능
group by랑 사용불가능
with cte as (
select *,
min(order_date) over (partition by customer_id) as min_date,
case when order_date = customer_pref_delivery_date then 'immediate'
else 'scheduled' end as yn
from Delivery
)
select round(
sum(case when yn='immediate' then 1 else 0 end) * 100 / count(*), 2
) as immediate_percentage
from cte
where order_date = min_date
다음과 같이 그냥 select *, 후에 컬럼생성용
# 서브쿼리
1) where in
2) with과 join
개념들 참고해서 어떤 아이디어로 문제를 풀 것인지 공책에 간단하게 그려보고 접근하기
이해가 잘 가지 않는다면 Dbeaver 테이블 직접 생성 후 코드 돌려보기
'Knowledge🦢 > SQL' 카테고리의 다른 글
[SQL Challenge] 3회차 - 퍼널분석 복습하기 (0) | 2024.07.20 |
---|---|
[SQL Challenge] 4회차 - groupby, exists, 퍼널분석, 리텐션분석, 코호트분석 (0) | 2024.07.19 |
[SQL] Challenge 3회차 퍼널분석 - 가상테이블, left 조인, count(distinct 컬럼) 백분율 구하기✔️✔️ (0) | 2024.05.30 |
[SQL] Challenge 2회차 - 이동평균법 (0) | 2024.05.29 |
[SQL] Challenge 1회차 - 윈도우함수는 컬럼생성, first_value, last_value, lag, lead (1) | 2024.05.29 |