BOOSTER QUIZ 6-1-1
상품종류가 음료이거나 베이커리이면서, 상품크기가 레귤러인 상품을 보여주세요. 이때, Hot/Cold구분을 "차가운","뜨거운"으로 구분해서 보여주세요.
•
대상 테이블: 상품(Item)
•
조회 조건: ItemCat가 BEV(음료)이거나 BKR(베이커리)이면서, ItemSizeCd는 REG(레귤러)인 데이터만
•
조회 컬럼: HotColdNm, ItemId, ItemNm
•
추가 조건
◦
HotColdNm은 CASE를 사용해 처리합니다.
▪
HotColdCd가 HOT이면 '뜨거운', COLD면 '차가운'으로 표시합니다.
◦
주의) 실제 운영 시스템은 이런 코드성 데이터 명칭은 기준코드 테이블로 처리합니다.
▪
여기서는 연습을 위해 CASE를 사용합니다.
•
정렬 기준: HotColdCd로 오름차순 한 후에, ItemId로 오름차순 정렬하시오.
HotColdNm ItemId ItemNm
--------- ------ ---------------
차가운 BMFR 블루베리머핀(R)
차가운 CMFR 초코머핀(R)
차가운 LEMR 레몬에이드(R)
뜨거운 BGLR 베이글(R)
뜨거운 HCHR 핫초코(R)
SQL
복사
풀이
BOOSTER QUIZ 6-1-2
2022년 12월 23일 주문을 조회해주세요. 주문번호로 오름차순 해주세요. 주문일시가 12시 이전이면 ‘오전주문’, 주문일시가 12시 이후면 ‘오후주문’으로 표시해주세요.
•
대상 테이블: 주문(Ord)
•
조회 조건: OrdDtm이 2022년 12월 23일
•
조회 컬럼: OrdNo, OrdDtm, MemberId, 오전오후구분
•
추가 조건
◦
오전오후구분은 CASE로 처리합니다.
▪
OrdDtm의 시간이 12:00:00 이하(<=)면 ‘오전주문’으로 출력
▪
OrdDtm의 시간이 12:00:00 초과(>)면 ‘오후주문’으로 출력
•
OrdNo로 오름차순 정렬로 출력하시요.
OrdNo OrdDtm MemberId 오전오후구분
----- ------------------- -------- ------------
57119 2022-12-23 07:30:00 M1040 오전주문
57120 2022-12-23 07:30:00 M2000 오전주문
57121 2022-12-23 07:30:00 M3071 오전주문
57122 2022-12-23 07:30:00 M5000 오전주문
57123 2022-12-23 07:30:00 M6041 오전주문
57124 2022-12-23 07:30:00 M7010 오전주문
... 생략 ...
SQL
복사
풀이
BOOSTER QUIZ 6-2-1
2021년 12월 24일의 주문을 보여주세요. 그런데, S010 매장의 주문이 가장 먼저 조회되도록 해주시고, 나머지는 주문번호순으로 보여주세요.
•
대상 테이블: 주문(Ord)
•
조회 조건: OrdDtm이 2021년 12월 24일인 데이터
•
조회 컬럼: OrdNo, OrdDtm, ShopId, OrdAmt
•
추가 조건
◦
데이터 정렬시, S010 매장의 주문은 무조건 위에 나오도록 예외 처리하시오.
•
정렬 기준: S010 매장의 주문이 무조건 먼저 나오도록 처리하고, 나머지는 OrdNo 순으로 오름차순 정렬하시오.
OrdNo OrdDtm ShopId OrdAmt
----- ------------------- ------ ---------
23070 2021-12-24 10:00:00 S010 8500.000
23270 2021-12-24 13:00:00 S010 10000.000
22974 2021-12-24 07:30:00 S023 4000.000
22975 2021-12-24 07:30:00 S050 12500.000
22976 2021-12-24 07:30:00 S065 2500.000
22977 2021-12-24 08:00:00 S003 3000.000
22978 2021-12-24 08:00:00 S021 4500.000
… 생략 …
SQL
복사
풀이
BOOSTER QUIZ 6-2-2
2021년 12월 1일 주문에 대해, 주문일시와 픽업일시를 보여주고, 주문에서 픽업까지 걸린 시간에 대해 "10분초과"와 "10분이하"로 구분자를 넣어주세요.
•
대상 테이블: 주문(Ord)
•
조회 조건: OrdDtm이 2021년 12월 1일인 데이터
•
조회 컬럼: OrdNo, OrdDtm, PickupDtm, 픽업완료시간구분
•
추가 조건
◦
픽업완료시간구분은 OrdDtm에서 PickupDtm까지 걸린 시간에 따라,
◦
'10분초과' 또는 '10분이하'로 구분
◦
OrdDtm에서 PickupDtm까지 걸린 시간은 TIMESTAMPDIFF로 처리합니다.
•
정렬 기준: OrdNo로 오름차순 정렬하시오.
OrdNo OrdDtm PickupDtm 픽업완료시간구분
----- ------------------- ------------------- ----------------
19987 2021-12-01 08:00:00 2021-12-01 08:07:00 10분이하
19988 2021-12-01 08:00:00 2021-12-01 08:11:00 10분초과
19989 2021-12-01 08:00:00 2021-12-01 08:05:00 10분이하
SQL
복사
풀이
BOOSTER QUIZ 6-2-3
[BOOSTER QUIZ 6-2-2] 풀이 SQL을 활용해, 픽업완료시간구분별 주문건수를 구하시오.
픽업완료시간구분 주문건수
---------------- --------
10분이하 2
10분초과 1
SQL
복사
풀이
BOOSTER QUIZ 6-2-4
S001과 S002 매장의 2022년 주문을, 매장별로 상반기, 하반기로 구분해 주문건수를 구해주세요.
•
대상 테이블: 주문(Ord)
•
조회 조건: ShopId가 S001, S002인 매장의 OrdDtm이 2022년인 모든 데이터
•
조회 컬럼: ShopId, 반기구분, OrdCnt
•
추가 조건
◦
반기구분은 OrdDtm을 CASE 처리
▪
22년1월부터 22년 6월말까지는 '상반기', 22년 7월부터는 '하반기'로 구분
◦
ShopId, 반기구분별 GROUP BY 처리합니다.
◦
OrdCnt는 ShopId, 반기구분별 주문건수입니다.
•
정렬 기준: ShopId로 오름차순 후에, 반기구분으로 오름차순하시오.
ShopId 반기구분 OrdCnt
------ -------- ------
S001 상반기 551
S001 하반기 2444
S002 상반기 3
S002 하반기 73
SQL
복사
풀이