WITH 구문
예시
# with 구문 활용 예시1
with soso as # with 뒤쪽에 임시테이블명 지정
( select etc_str2, etc_str1, count(distinct game_actor_id)as actor_cnt
from basic.users
group by etc_str2, etc_str1 # 임시테이블을 만들 때 활용할 테이블
)
select *
from soso # WITH절에서 지정한 임시테이블명
;
#####################################################################
# with 구문 활용 예시2 - 경험치가 가장 많은 캐릭터 정보 조회하기
with dodo as # with 뒤쪽에 임시테이블명 지정
( select *
from basic.users
)
select *
from( select max(exp)as maxexp
from dodo
)as a
inner join
( select *
from dodo
)as b
on a.maxexp=b.exp
;
#####################################################################
# with 구문 활용 예시3 - 다중 with 구문
with gogo as # 첫번째 with 절
( select game_account_id, exp
from basic.users
where `level` >50
),
hoho as # 두번째 with 절, with 구문은 처음 한번만 작성합니다.
( select distinct game_account_id, pay_amount, approved_at
from basic.payment
where pay_type='CARD'
) # 이 부분에서 with 구문이 종료됩니다.
select case when b.game_account_id is null then '결제x' else '결제o' end as gb
, count(distinct a.game_account_id)as accnt
from gogo as a
left join hoho as b
on a.game_account_id=b.game_account_id
group by case when b.game_account_id is null then '결제x' else '결제o' end
;
'[업무 지식] > MySQL' 카테고리의 다른 글
자동차 대여 기록 별 대여 금액 구하기 (0) | 2024.10.21 |
---|---|
[기간에 포함되지 않는 날짜] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.10.18 |
[with 구문] 입양 시각 구하기(2) (0) | 2024.10.16 |
[컬럼, NULL] 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.10.16 |
[조건과 서브쿼리] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2024.10.15 |