Search

98-8. BOOSTER QUIZ 답안 8

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
복사
풀이