BOOSTER QUIZ 8-1-1
주문번호 10번의 주문과 주문상세 정보를 보여주세요. 주문한 상품의 상품크기에 대한 코드명도 한글로 보여주세요.
•
대상 테이블: 주문(Ord), 주문상세(OrdDet), 상품(Item)
•
조회 조건: OrdNo가 10인 데이터
•
조회 컬럼: OrdNo, OrdDtm, OrdDetNo, ItemId, ItemNm, ItemSizeCd, ItemSizeCd_Nm
•
추가 조건
◦
ItemSizeCd_Nm은 ItemSizeCd에 대한 코드명칭입니다.
▪
BaseCd 테이블을 사용해 스칼라 서브쿼리로 처리합니다.
OrdNo OrdDtm OrdDetNo ItemId ItemNm ItemSizeCd ItemSizeCd_Nm
----- ------------------- -------- ------ ------------------- ---------- -------------
10 2019-05-21 14:00:00 1 IAMR Iced Americano(R) REG Regular Size
10 2019-05-21 14:00:00 2 CMFR Chocolate Muffin(R) REG Regular Size
10 2019-05-21 14:00:00 3 IAMR Iced Americano(R) REG Regular Size
SQL
복사
풀이
BOOSTER QUIZ 8-1-2
아래 SQL에서 서브쿼리를 제거하고 조인으로 처리하시오.
SELECT T1.MemberId ,T1.NickNm
,(
SELECT SUM(X.OrdAmt)
FROM startdb.Ord X
WHERE X.MemberId = T1.MemberId
AND X.OrdDtm >= STR_TO_DATE('20211201','%Y%m%d')
AND X.OrdDtm < STR_TO_DATE('20220101','%Y%m%d')
) OrdAmt
,(
SELECT COUNT(*)
FROM startdb.Ord X
WHERE X.MemberId = T1.MemberId
AND X.OrdDtm >= STR_TO_DATE('20211201','%Y%m%d')
AND X.OrdDtm < STR_TO_DATE('20220101','%Y%m%d')
) OrdCnt
FROM startdb.Member T1
WHERE T1.JoinDtm >= STR_TO_DATE('20210701','%Y%m%d')
AND T1.JoinDtm < STR_TO_DATE('20210801','%Y%m%d')
AND T1.MemberGd = 'PLAT'
AND T1.MemberSt = 'ACTV'
ORDER BY T1.MemberId ASC;
SQL
복사
풀이
BOOSTER QUIZ 8-1-3
아래 SQL에서 Shop과 Member에 대한 서브쿼리를 조인으로 변경하시오.
•
추가 조건: MemberGd_NM에 대한 이중 중첩 스칼라 서브쿼리는 중첩을 제거, 단일 스칼라 서브쿼리로 변경
SELECT T1.OrdNo ,T1.OrdDtm ,T1.ShopId
,(SELECT X.ShopNm FROM startdb.Shop X WHERE X.ShopID = T1.ShopID) ShopNm
,(SELECT X.ShopSize FROM startdb.Shop X WHERE X.ShopID = T1.ShopID) ShopSize
,T1.MemberId
,(SELECT X.NickNm FROM startdb.Member X WHERE X.MemberId = T1.MemberId) NickNm
,(SELECT X.MemberGd FROM startdb.Member X WHERE X.MemberId = T1.MemberId) MemberGd
,(SELECT (SELECT MAX(Y.BaseCdNm)
FROM startdb.BaseCd Y
WHERE Y.BaseCdDv = 'MemberGd'
AND Y.BaseCd = X.MemberGd)
FROM startdb.Member X
WHERE X.MemberId = T1.MemberId) MemberGd_NM
FROM startdb.Ord T1
WHERE T1.OrdNo = 100
ORDER BY T1.OrdNo;
SQL
복사
풀이
BOOSTER QUIZ 8-2-1
2022년 12월 24일에 한 번이라도 주문이 있었던 회원 수를 알려주세요.
•
대상 테이블: 회원(Member), 주문(Ord)
•
조회 조건: 2022년 12월 24일(OrdDtm)에 주문이 한 건이라도 있는 회원
•
조회 컬럼: MemberCnt
•
추가 조건
◦
MemberCnt는 2022년 12월 24일에 주문이 한 번이라도 있었던 회원 수입니다.
MemberCnt
---------
2208
SQL
복사
풀이
BOOSTER QUIZ 8-2-2
2022년 12월 24일에 초코머핀 주문이 한 번이라도 있었던 회원을 회원등급별로 카운트(회원수)해주세요.
•
대상 테이블: 회원(Member), 주문(Ord), 주문상세(OrdDet)
•
조회 조건
◦
2022년 12월 24일(OrdDtm)에 ItemId가 CMFR(초코머핀)인 주문이 한건이라도 있는 회원
•
조회 컬럼: MemberGd, MemberCnt
•
추가 조건
◦
MemberGd별 GROUP BY 처리하시오.
◦
MemberCnt는 MemberGd별 카운트입니다.(회원수)
MemberGd MemberCnt
-------- ---------
GOLD 87
PLAT 38
SILV 94
SQL
복사
풀이