BOOSTER QUIZ 10-2-1
현재 Active한 회원에 대해 회원등급별 회원수를 보여주세요. 회원등급은 코드값이 아닌 명칭으로 보여주세요. 전체 합계도 추가해서 표시해주세요.
•
대상 테이블: 회원(Member)
•
조회 조건: MemberSt가 ACTV인 데이터
•
조회 컬럼: MemberGdNm, MemberCnt
•
추가 조건
◦
ROLLUP을 사용해 전체 합계를 추가하시오.
◦
BaseCd 테이블을 사용해 MemberGd의 명칭을 보여주시요.(MemberGdNm)
◦
GROUPING을 사용해 합계인 경우에는 MemberGdNm을 Total로 보여주세요.
MemberGdNm MemberCnt
---------- ---------
Gold 3146
Platinum 1144
Silver 5509
Total 9799
SQL
복사
풀이
BOOSTER QUIZ 10-2-2
2020년에 시작한 매장에 대해 시작년월별 매장운영유형별 매장건수를 보여주세요. 시작년월별 중간합계와 전체합계도 포함해서 보여주세요.
•
대상 테이블: 매장(Shop)
•
조회 조건: ShopStartYmd가 2020년인 데이터
◦
ShopStartYmd는 날짜를 관리하지만 문자형 자료형임에 주의가 필요
•
조회 컬럼: ShopStartYm, ShopOperTpNm, ShopCnt
•
추가 조건
◦
ShopStartYm: ShopStartYmd를 년월로 처리(SUBSTR(ShopStartYmd,1,6))
◦
ShopStartYm, ShopOperTp별 GROUP BY 처리하시오.
◦
ShopCnt: ShopStartYm, ShopOperTp별 매장건수
◦
ROLLUP을 사용해 ShopStartYm별 중간합계와 전체 합계를 추가하시오.
◦
BaseCd 테이블을 사용해 ShopOperTp의 명칭을 보여주시요.(ShopOperTpNm)
◦
GROUPING을 사용해 합계인 경우에는 MemberGdNm을 Total로 보여주세요.
ShopStartYm ShopOperTpNm ShopCnt
----------- ------------ -------
202001 Distributor 10
202001 Directly 9
202001 Total 19
202007 Distributor 27
202007 Directly 16
202007 Total 43
202008 Distributor 29
202008 Directly 18
202008 Total 47
Total Total 109
SQL
복사
풀이
BOOSTER QUIZ 10-2-3
2020년 1월과 2020년 2월 주문에 대해, ItemCat별, 주문년월별 주문수량을 보여주세요. ItemCat별 주문수량 합계와 전체합계도 추가해서 보여주세요.
•
대상 테이블: 주문(Ord), 주문상세(OrdDet), 상품(Item), 상품카테고리(ItemCat)
•
조회 조건: OrdDtm이 2020년 1월부터 2020년 2월말까지의 주문 데이터
•
조회 컬럼: ItemCatNm, OrdYm, SUM_OrdQty
•
추가 조건
◦
ItemCat, OrdYm별 GROUP BY 처리하시오.
◦
SUM_OrdQty: ItemCat, OrdYm별 주문수량(OrdQty) 합계
◦
ROLLUP을 사용해 ItemCat별 중간합계와 전체 합계를 추가하시오.
◦
GROUPING을 사용해 합계인 경우에는 합계 데이터는 Total로 보여주세요.
◦
SQL에 GROUPING과 인라인-뷰, CASE를 적절히 사용합니다.
ItemCatNm OrdYm SUM_OrdQty
--------- ------ ----------
Beverage 202001 80
Beverage 202002 113
Beverage Total 193
Bakery 202001 80
Bakery 202002 110
Bakery Total 190
Coffee 202001 218
Coffee 202002 298
Coffee Total 516
Total Total 899
SQL
복사
풀이
BOOSTER QUIZ 10-2-1
2020년 1월과 2020년 2월 주문에 대해, 상품카테고리별로 주문수량을 구해주세요. 2020년 1월 주문수량과 2020년 2월 주문수량을 각각의 컬럼으로 보여주세요.
•
대상 테이블: 주문(Ord), 주문상세(OrdDet), 상품(Item), 상품카테고리(Itemcat)
•
조회 조건: OrdDtm이 2021년 1월부터 2021년 2월까지의 주문 데이터
•
조회 컬럼: ItemCat, ItemCatNm, Qty_202001, Qty_202002
•
추가 조건
◦
Qty_202001: OrdDtm이 2020년 1월 주문의 OrdQty를 SUM
◦
Qty_202002: OrdDtm이 2020년 2월 주문의 OrdQty를 SUM
◦
ItemCat별 Qty_202001과 Qty_202002를 각각 컬럼으로 보여주시오.
ItemCat ItemCatNm Qty_202001 Qty_202002
------- --------- ---------- ----------
BEV Beverage 80 113
BKR Bakery 80 110
COF Coffee 218 298
SQL
복사
풀이
BOOSTER QUIZ 10-2-2
2021년 1월부터 2021년 3월까지의 주문에 대해, 주문년월별로 오전주문건수와 오후주문건수를 보여주세요.
•
대상 테이블: 주문(Ord)
•
조회 조건: OrdDtm이 2021년 1월부터 2021년 3월까지의 주문 데이터
•
조회 컬럼: OrdYm, 오전주문, 오후주문
•
추가 조건
◦
OrdYm은 OrdDtm을 년월 형태로 변환한 값
◦
OrdYm별 GROUP BY 처리하시오.
◦
오전주문건수는 OrdDtm의 주문시간(DATE_FORMAT(T1.OrdDtm,'%H'))이 12시 이하인 주문
◦
오후주문건수는 OrdDtm의 주문시간(DATE_FORMAT(T1.OrdDtm,'%H'))이 12시 초과인 주문
◦
오전주문건수, 오후주문건수를 구하기 위해서는 GROUP BY ~ 집계함수(CASE) 패턴을 사용하시오.
OrdYm 오전주문 오후주문
------ -------- --------
202101 421 80
202102 312 298
202103 421 325
SQL
복사
풀이
BOOSTER QUIZ 10-2-3
[BOOSTER QUIZ 10-2-1]의 내용에서 오전주문, 오후주문을 기준축으로 처리하고 년월별 주문 건수가 컬럼으로 표시되도록 변경하시오.
•
대상 테이블: 주문(Ord)
•
조회 조건: OrdDtm이 2021년 1월부텉 2021년 3월까지의 주문 데이터
•
조회 컬럼: 주문구분, 주문_202101, 주문_202102, 주문_202103
•
추가 조건
◦
주문구분은 주문시간에 따라 오전주문과 오후주문을 구분하는 항목
▪
12시 이하인 경우 오전주문, 12시 초과 오후주문
◦
주문구분별로 GROUP BY 처리하시오.
▪
주문_202101은 2021년 1월에 발생한 주문 건수
▪
주문_202102은 2021년 2월에 발생한 주문 건수
▪
주문_202103은 2021년 3월에 발생한 주문 건수
◦
주문_202101~주문_202103을 구하기 위해서는 GROUP BY ~ 집계함수(CASE) 패턴을 사용하시오.
주문구분 주문_202101 주문_202102 주문_202103
-------- ----------- ----------- -----------
오전주문 421 312 421
오후주문 80 298 325
SQL
복사
풀이
BOOSTER QUIZ 10-3-1
NickNm이 Air와 Wind3인 회원의 2023년 1월 1일부터 2023년 1월 3일까지의 주문 금액 회원별+일자별로 보여주세요. 주문이 없는 날짜도 보이도록 처리해주세요.
•
대상 테이블: 회원(Member), 주문(Ord), 날짜(BaseDt)
•
조회 조건
◦
NickNm이 Air, Wind3인 회원
◦
OrdDtm이 2023년 1월 1일부터 2023년 1월 3일까지
•
조회 컬럼: OrdYmd, MemberId, NickNm, OrdAmt
•
추가 조건
◦
주문이 없는 날짜의 데이터도 출력되도록 처리해주세요.
▪
BaseDt와 Member 테이블을 크로스 조인해 분석 마스터 데이터 집합을 만들어 처리합니다.
OrdYmd MemberId NickNm OrdAmt
-------- -------- ------ --------
20230101 M0001 Air 4500.000
20230101 M0200 Wind3 0.000
20230102 M0001 Air 3000.000
20230102 M0200 Wind3 4500.000
20230103 M0001 Air 4500.000
20230103 M0200 Wind3 0.000
SQL
복사
풀이